13

I have two property files [one.properties and two.properties]. I want to dynamically load the property files into my Ant project from the command line.

My build file name is build.xml.

Command line:

> ant build [How do I pass the property file names here?]
4

2 に答える 2

23

コマンドラインからプロパティファイルをロードする

ant -propertyfile one.properties -propertyfile two.properties 

-D個々のプロパティは、次のフラグを使用してコマンドラインで定義できます。

ant -Dmy.property=42


Antプロジェクト内からのプロパティファイルのロード

LoadPropertiesAntタスク

<loadproperties srcfile="one.properties" />
<loadproperties srcfile="two.properties" />

プロパティAntタスク

<property file="one.properties" />
<property file="two.properties" />

パターンを使用してプロパティファイルを照合する

JB Nizetのソリューションは、concatファイルセットを組み合わせたものです。

<target name="init" description="Initialize the project.">
  <mkdir dir="temp" />
  <concat destfile="temp/combined.properties" fixlastline="true">
    <fileset dir="." includes="*.properties" />
  </concat>
  <property file="temp/combined.properties" />
</target>
于 2012-07-05T19:18:34.820 に答える
0

ビルドに必要なシステム パラメーターが提供されている場合に、次のターゲットのみを許可するようにビルド条件を作成します。それ以外の場合、ビルドは失敗します。

 Pass CMD: ant -DclientName=Name1 -Dtarget.profile.evn=dev
 Fail CMD: ant
<project name="MyProject" default="myTarget" basedir=".">
    <target name="checkParams">
        <condition property="isReqParamsProvided">
            <and>
                <isset property="clientName" /> <!-- if provide read latest else read form property tag -->
                <length string="${clientName}" when="greater" length="0" />
                <isset property="target.profile.evn" /> <!-- mvn clean install -Pdev -->
                <length string="${target.profile.evn}" when="greater" length="0" />
            </and>
        </condition>
        <echo>Runtime Sytem Properties:</echo>
        <echo>client              = ${clientName}</echo>
        <echo>target.profile.evn  = ${target.profile.evn}</echo>
        <echo>isReqParamsProvided = ${isReqParamsProvided}</echo>
        <echo>Java/JVM version: ${ant.java.version}</echo> 
    </target>

    <target name="failOn_InSufficentParams" depends="checkParams" unless="isReqParamsProvided">
        <fail>Invalid params for provided for Build.</fail>
    </target>

    <target name="myTarget" depends="failOn_InSufficentParams">
        <echo>Build Success.</echo>
    </target>
</project>

@see also:すべてのトークン フォーム ファイルを置換

于 2020-02-17T15:00:10.633 に答える