2013-07-12 85 views
0

如何创建一个包含一些属性和依赖关系的Maven项目?创建包括属性和依赖关系的mvn项目

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

我想你已经知道如何直接在pom.xml文件中设置属性。 – ATOzTOA

+0

哇!你的意思是用文本编辑器...?! :)不,我需要一个命令,因为我需要一个脚本。 –

+0

然后,您应该:创建自己的原型或使用脚本语言来操作由原型生成的XML。制作你自己的插件也是一个解决方案:) – Tome

回答

1

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所说的可能是更好的选择。