簡體   English   中英

ant屬性文件被屬性任務覆蓋

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM