我有一个MOJO,它使用配置XML文件并生成Java源文件:
\src\main\<name of mojo>\
,属于使用MOJO的项目。target\generated-sources\<name of mojo>\
中。现在我想创建(不使用!)一个使用MOJO生成其源文件的原型。这意味着:
原型的最终用户必须能够将配置传递给原型。
原型必须能够执行MOJO才能生成源文件。
这可能吗?总而言之,流程是:
1)最终用户使用原型来创建Maven项目;最终用户提供配置文件。
2)原型接受配置文件并使用MOJO生成源。 pom.xml和其他资源内置在原型中。
3)最终用户获得了一个Maven项目,他可能将其视为只读项目。
换句话说,原型的结果取决于提供的输入(配置)。
答案 0 :(得分:1)
据我所说,不可能做你想要的。代替 我建议你看一下允许在现有的maven项目上执行mvn archetype:generate的部分achetype。
为了解释它的作用。想象一下,您正在处理一个maven项目,并且您希望在其上应用部分原型。这个部分原型包含一个带有一些依赖项的pom.xml和一个包含一些文件的目录结构。
要应用此部分原型,请在maven项目中运行命令mvn archetype:generate。
一旦应用,两个pom.xml文件都会合并,文件和目录结构也会合并。
从技术上讲,部分原型是一个常规原型,在其原型描述符文件中包含一个true的部分属性。
<archetype-descriptor
xmlns="..."
xsi:schemaLocation="..."
name="MyProject"
partial="true">
...
</archetype-descriptor>
https://maven.apache.org/guides/mini/guide-creating-archetypes.html