属性任务覆盖的ant属性文件
我试图在ant项目中设置一些全局属性属性任务覆盖的ant属性文件,ant,Ant,我试图在ant项目中设置一些全局属性 <property file="env/${deploy.servername}.properties" /> <property name="deploy.username" value="${env.USERNAME}" /> 由于ant任务是由jenkins参数化项目触发的,env.USERNAME总是设置好的,但并不总是正确的 我的设计目标是,如果属性deploy.username存在于deploy.servername
<property file="env/${deploy.servername}.properties" />
<property name="deploy.username" value="${env.USERNAME}" />
由于ant任务是由jenkins参数化项目触发的,env.USERNAME
总是设置好的,但并不总是正确的
我的设计目标是,如果属性deploy.username
存在于deploy.servername
的文件中,则该文件应设置属性,并且作为ant不应允许重置属性,则应忽略env.username
处的值
不幸的是,env.USERNAME
提供的值总是脚本使用的值。为什么?ant是否在属性文件=*
之前计算属性名称=*
?属性是由属性文件=*
设置的吗
感谢ant中的帮助,属性一旦设置,就可以通过设计保持不变。使用不同的机制创建属性时,没有特定的顺序-属性的第一次声明获胜。
给定属性文件foo.properties有:
JAVA_HOME=some/path
示例脚本
<project>
<property file="foo.properties"/>
<property name="JAVA_HOME" value="foobar"/>
<property environment="env"/>
<property name="JAVA_HOME" value="${env.JAVA_HOME}"/>
<echo>$${JAVA_HOME} => ${JAVA_HOME}</echo>
</project>
这意味着该属性已在其他地方定义。放在那一行:
<echo>$${deploy.username} => ${deploy.username}</echo>
$${deploy.username}=>${deploy.username}
之前:<property file="env/${deploy.servername}.properties"/>
查看该属性是否已存在
<property file="env/${deploy.servername}.properties"/>