【发布时间】:2013-03-04 13:48:39
【问题描述】:
无论如何我可以在 Maven 配置文件中传递参数。如果对默认配置文件另有指定,就像我想在特定端口上运行服务器一样。 就像我运行 mvn clean install -Pdeploy 4322 时一样,包应该部署到在端口 4322 上运行的服务器,否则部署到 4052。
【问题讨论】:
标签: maven maven-2 maven-3 aem maven-profiles
无论如何我可以在 Maven 配置文件中传递参数。如果对默认配置文件另有指定,就像我想在特定端口上运行服务器一样。 就像我运行 mvn clean install -Pdeploy 4322 时一样,包应该部署到在端口 4322 上运行的服务器,否则部署到 4052。
【问题讨论】:
标签: maven maven-2 maven-3 aem maven-profiles
是的,你可以传递环境变量,像这样:mvn ... -Pdeploy -DdeploymentPort=4322
然后像这样访问配置文件中的变量:
...
<port>${deploymentPort}</port>
...
【讨论】:
您可以定义在父 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] 覆盖默认值。
【讨论】: