有没有一种方法可以对原型产生的项目进行后处理?

And*_*nov 4 maven maven-archetype

假设我有一个原型,然后从中生成一个项目。但是我想通过在命令行中传递占位符的值来解决生成时间后生成的项目的属性文件中的占位符。

例如,具有以下命令行:

mvn原型:create -DarchetypeGroupId = ... -DarchetypeArtifactId = ... -DarchetypeVersion = 1.0 -DgroupId = ... -DartifactId = my-project -Dversion = 1.0-SNAPSHOT -Dhello = Hello!

假设原型包含app.properties(作为正在生成的项目的一部分),其内容如下:

greeting = $ {hello}

是否可以将$ {hello}替换为“ Hello!”。是由于mvn archetype:create命令生成了项目之后吗?

Mar*_*ano 5

是的,这是可能的。从有关Maven原型的高级用法指南中:

如果用户想进一步定制生成的项目,则可以在src / main / resources / META-INF /中添加一个名为archetype-post-generate.groovy的Groovy脚本。该脚本将最终存储在生成的原型的META-INF文件夹中,并在根据该原型创建项目后执行。该常规脚本可以访问ArchetypeGenerationRequest对象以及用户指定的所有System.getProperties()和所有原型生成属性。


Thi*_*iru -1

不确定我理解是否正确。对于项目创建后的后处理,您可以使用参数 -Dgoals 并调用自定义插件。

我不确定您的要求,但为什么您不能在项目生成过程中做同样的事情呢?