[英]ant property file overwritten by property task
我正在嘗試在ant項目中設置一些全局屬性。
<property file="env/${deploy.servername}.properties" />
<property name="deploy.username" value="${env.USERNAME}" />
由於ant任務是由jenkins參數化的項目觸發的,因此始終會設置env.USERNAME
但並不總是正確的。
我的設計目標是,如果文件deploy.servername
存在屬性deploy.username
則文件應設置該屬性,而作為ant 不應允許重置該屬性,則應忽略env.USERNAME
處的值。
不幸的是, env.USERNAME
提供的值env.USERNAME
是腳本使用的值。 為什么? ant是否在property file=*
之前評估property name=*
property file=*
? 通過property file=*
設置的property file=*
是否可變?
謝謝您的幫助
在ant中,一旦設置的屬性在設計上是不可變的。 使用不同的機制創建屬性時,沒有特定的順序-屬性的第一個聲明將獲勝。
給定的propertyfile 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] ${JAVA_HOME} => some/path
這意味着該屬性已在其他位置定義。
放在那一行:
<echo>$${deploy.username} => ${deploy.username}</echo>
之前:
<property file="env/${deploy.servername}.properties"/>
查看該屬性是否已經存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.