簡體   English   中英

從多個屬性文件中讀取Ant變量

[英]Reading Ant variables from multiple properties files

我有一個Ant構建文件,它在文件頂部導入以下內容:

<project name="..." ...>
    <property file="build.properties"/>
    ...

在項目根目錄中,我有兩個屬性文件: build.propertiesspecial-config.properties 我正在定義一個需要從special-config.properties讀取以下屬性的目標:

always.ask =真

所以目標必須是這樣的 (只是要記住, build.properties已經被設置為屬性文件這一目標不斷執行長前):

<target name="exec-special-logic">
    <!-- Somehow read special-config.properties#always.ask and set it to a local variable... -->
</target>

但我想知道如何加載第二個屬性文件並使其屬性(如always.ask )可用於Ant。 提前致謝。

您可以根據需要從多個不同的文件中讀取屬性,這樣您就可以擁有

<property file="build.properties"/>
<property file="build.properties.part2"/>

等等。 在Ant中,屬性的第一個值集 - 屬性是悄然不可變的。 因此,如果你有:

<property name="my.prop" value="one" />

在第一個文件中的某個地方

<property name="my.prop" value="two" />

稍后 - 也許在第二個文件中,屬性在構建期間將具有值“1”。

最新版本的一個特性是屬性可以本地化到執行塊 - 這可以讓你“繞過”不變性。 這是一個直接從Ant 本地任務的文檔中提取的示例:

<property name="foo" value="foo"/>

<target name="step1">
    <echo>Before local: foo is ${foo}</echo>
    <local name="foo"/>
    <property name="foo" value="bar"/>
    <echo>After local: foo is ${foo}</echo>
</target>

<target name="step2" depends="step1">
    <echo>In step2: foo is ${foo}</echo>
</target>

輸出

step1:
     [echo] Before local: foo is foo
     [echo] After local: foo is bar

step2:
     [echo] In step2: foo is foo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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