Maven - 创建使用 mojo 生成源代码的原型

Maven - create archetype which uses mojo for source generation

我有一个 MOJO,它使用配置 XML 文件并生成 Java 个源文件:

现在我想创建(不是使用!)一个使用 MOJO 生成其源文件的原型。这意味着:

  1. 原型的最终用户必须能够将配置传递给原型。

  2. 原型必须能够执行 MOJO 才能生成源文件。

这可能吗?总而言之,流程是:

1) 终端用户使用archetype创建Maven项目;最终用户提供配置文件。

2) 原型接受配置文件并使用 MOJO 生成源代码。 pom.xml 和其他资源内置于原型中。

3) 最终用户得到一个 Maven 项目,他可能会将其视为只读。

换句话说,原型的结果取决于提供的输入(配置)。

根据我的说法,不可能做你正在寻找的事情。反而 我建议您查看允许在现有 Maven 项目上执行 mvn archetype:generate 的部分 achetype。

为了解释它的作用。想象一下,您正在处理一个 Maven 项目,并且您想要在其上应用部分原型。这个部分原型包含一个 pom.xml 和一些依赖项以及一个包含一些文件的目录结构。

要应用此部分原型,您 运行 在您的 maven 项目中使用命令 mvn archetype:generate。

应用后 pom.xml 文件以及文件和目录结构都会合并。

从技术上讲,部分原型是一种常规原型,在其原型描述符文件中包含部分属性为真。

<archetype-descriptor 
    xmlns="..." 
    xsi:schemaLocation="..." 
    name="MyProject" 
    partial="true">
...
</archetype-descriptor>

https://maven.apache.org/guides/mini/guide-creating-archetypes.html