假设我有一个原型,并从中生成一个项目。但是,我希望通过命令行将占位符的值传递给占位符,从而解析生成后生成的项目的属性文件中的占位符。
例如,具有以下命令行:
mvn原型:创建-Dhello=Hello! .-DarchetypeGroupId=.-DarchetypeArtifactId=. -DarchetypeVersion=1.0 -DgroupId=. -DartifactId=my-project -Dversion=1.0-快照-DgroupId=
假设原型包含app.properties (作为正在生成的项目的一部分),其内容如下:
greeting=${hello}
是否可以将${hello}替换为"Hello!“就在mvn原型生成项目之后:创建命令?
发布于 2017-03-02 19:34:47
是的这是可能的。来自高级使用指南中的maven原型:
如果用户想进一步定制生成的项目,可以在src/main/resources/META/中添加一个名为原型-postgenerate.groovy的groovy脚本。此脚本将在生成的原型的META文件夹中结束,并将在从该原型创建项目时执行。这个groovy脚本可以访问ArchetypeGenerationRequest对象,以及用户指定的所有System.getProperties()和所有原型生成属性。
发布于 2017-08-16 19:30:49
您可以在原型中定义其他属性,格式如下:https://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-metadata.html
例如:
定义文件: src\main\resources\META-INF\maven\archetype-metadata.xml
<archetype-descriptor
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
name="modelant.metamodel.api">
<requiredProperties>
<requiredProperty key="package"><defaultValue>${groupId}.${artifactId}</defaultValue></requiredProperty>
<requiredProperty key="parentGroupId"><defaultValue>${groupId}</defaultValue></requiredProperty>
<requiredProperty key="parentArtifactId"><defaultValue>${artifactId}</defaultValue></requiredProperty>
<requiredProperty key="parentVersion"><defaultValue>${version}</defaultValue></requiredProperty>
<requiredProperty key="metamodelUrl"/>
</requiredProperties>
</archetype-descriptor>在这里,您可以看到它定义了额外的所需属性,因此必须强制在对话框中提供这些属性,其中:
请注意:
发布于 2013-12-03 07:29:22
我不确定我的理解是否正确。对于项目创建后的后处理,您可以使用param -Dgoals并调用您的自定义插件。
不确定您的需求,但是为什么您不能在项目生成过程中这样做呢?
https://stackoverflow.com/questions/19564804
复制相似问题