【发布时间】:2013-02-22 12:57:36
【问题描述】:
目前在调用 ant 的 Maven 构建中遇到了一个奇怪的问题,在父 pom 中定义了以下属性:-
<jboss.home>${env.JBOSS_HOME}</jboss.home>
我试图通过在运行 Maven 时传入 -Djboss.home 来覆盖它。
此构建包含一个配置文件,当激活调用 Ant 构建时:-
<ant antfile="build.xml" inheritRefs="true">
<target name="all"/>
</ant>
Ant 脚本使用以下属性:-
<property name="jboss.dir" value="${jboss.home}"/>
An 随后输出它:-
<echo message="jboss dir is: ${jboss.dir}"/>
问题是它输出的值是${env.JBOSS_HOME}
我可以从命令行覆盖父 pom 中的其他属性。
如果在 Maven 构建中的其他地方使用,即使 jboss.home 属性似乎也会被覆盖。
在尝试了各种命令组合之后,几乎可以看出传递给 Ant 的属性集是从 poms 解析的,然后是命令行的任何覆盖。如果我设置了 JBOSS_HOME 环境变量,那么所有使用这个变量的地方都有正确的值。
我是否缺少能够在命令行上覆盖此变量并在 Ant 脚本中使用覆盖值的东西?
【问题讨论】:
-
我也看到了同样的问题...您找到解决方案了吗?我正在使用 Maven 3
标签: maven ant build system-properties