2013-03-15 75 views
2

是否有任何我可以在maven配置文件中传递参数。就像我想运行特定的端口上的服务器,如果指定,否则默认配置文件。 就像当我运行mvn干净安装-Pdeploy 4322比应该部署到运行在端口4322上的服务器,否则到4052.使用参数maven配置文件

我在等待任何建议或suggesstion。

回答

5

是的,你可以通过环境变量,像这样:mvn ... -Pdeploy -DdeploymentPort=4322

然后访问这样的配置文件中的变量:

... 
<port>${deploymentPort}</port> 
... 
+0

只是添加..这将是你的属性节点的孩子。 – Woodifer 2013-03-15 18:30:38

2

您可以定义默认属性在父pom.xml中使用

<properties> 
    <crx.userId>admin</crx.userId> 
    <crx.password>admin</crx.password> 
    <crx.host>localhost</crx.host> 
    <crx.port>4502</crx.port> 
</properties> 

然后在父pom.xml或子项目的pom.xml中,可以使用这些属性。

例子:

<plugin> 
    <groupId>com.day.jcr.vault</groupId> 
    <artifactId>content-package-maven-plugin</artifactId> 
    <extensions>true</extensions> 

    <configuration> 
     <targetURL>http://${crx.host}:${crx.port}/crx/packmgr/service.jsp</targetURL> 
     <userId>${crx.userId}</userId> 
     <password>${crx.password}</password> 
    </configuration> 
</plugin> 

然后在你的Maven命令使用-D[property name] = [value]覆盖默认值。

+0

感谢kfaerver和kostja的精彩回复:) – user2091202 2013-03-17 03:37:40