Maven - 创建使用mojo进行源生成的原型

时间:2015-11-14 10:01:45

标签: maven code-generation maven-archetype

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

  • 输入配置文件为\src\main\<name of mojo>\,属于使用MOJO的项目。
  • 输出生成的源文件放在属于使用MOJO的项目的目录target\generated-sources\<name of mojo>\中。

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

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

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

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

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

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

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

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

1 个答案:

答案 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