Maven - 创建使用 mojo 生成源代码的原型
Maven - create archetype which uses mojo for source generation
我有一个 MOJO,它使用配置 XML 文件并生成 Java 个源文件:
- 输入配置文件放在
\src\main\<name of mojo>\
,属于使用MOJO的项目
- 输出生成的源文件放在目录
target\generated-sources\<name of mojo>\
,属于使用MOJO的项目
现在我想创建(不是使用!)一个使用 MOJO 生成其源文件的原型。这意味着:
原型的最终用户必须能够将配置传递给原型。
原型必须能够执行 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
我有一个 MOJO,它使用配置 XML 文件并生成 Java 个源文件:
- 输入配置文件放在
\src\main\<name of mojo>\
,属于使用MOJO的项目 - 输出生成的源文件放在目录
target\generated-sources\<name of mojo>\
,属于使用MOJO的项目
现在我想创建(不是使用!)一个使用 MOJO 生成其源文件的原型。这意味着:
原型的最终用户必须能够将配置传递给原型。
原型必须能够执行 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