如何创建一个具有某些属性和依赖项的Maven项目?
E.g。通过以下方式创建项目时:
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.mycompany.app \
-DartifactId=my-app \
-DinteractiveMode=false
我该如何添加
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
...
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
我知道我可以使用上面的命令使用一些字符串操作命令。但是,我想知道是否有任何Maven方法可以直接创建具有属性和依赖关系集的pom.xml,或者稍后添加它们,例如类似的东西:
mvn <add-properties> -Dmaven.compiler.source=1.7 -Dmaven.compiler.target=1.7
mvn <add-dependency> -DgroupId=org.json -DartifactId=json -Dversion=20090211
答案 0 :(得分:2)
Don't think maven有此功能OOTB。
您还可以使用通用的XML实用工具,例如XMLStarlet
添加属性:
xmlstarlet ed -N x=http://maven.apache.org/POM/4.0.0 \
-s /x:project -t elem -n properties -v "" \
-s /x:project/properties -t elem -n maven.compiler.source -v 1.7 \
-s /x:project/properties -t elem -n maven.compiler.target -v 1.7 \
pom.xml
添加依赖项:
xmlstarlet ed -N x=http://maven.apache.org/POM/4.0.0 \
-s /x:project/x:dependencies -t elem -n dependency -v "" \
-s "/x:project/x:dependencies/dependency[last()]" -t elem -n groupId -v org.json \
-s "/x:project/x:dependencies/dependency[last()]" -t elem -n artifactId -v json \
-s "/x:project/x:dependencies/dependency[last()]" -t elem -n version -v 2009211 \
pom.xml
如果您对我使用的x命名空间有疑问,请阅读此内容:http://xmlstar.sourceforge.net/doc/UG/ch05s01.html。
根据具体情况,创建自己的原型,就像@Tome所说的那样,可能是更好的选择。