13

我有两个属性文件 [one.propertiestwo.properties]。我想从命令行将属性文件动态加载到我的 Ant 项目中。

我的构建文件名为 build.xml。

命令行:

> 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 项目中加载属性文件

LoadProperties Ant 任务

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

属性 Ant 任务

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

使用模式匹配属性文件

JB Nizet 的解决方案结合了concatfileset

<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>

@另见:替换所有令牌表单文件

于 2020-02-17T15:00:10.633 回答