正在读取 Ant 构建中的 .properties 文件.xml

2022-09-01 19:07:22

我需要一些使用Ant属性文件的帮助。我有以下几点:

  1. 生成属性文件。此文件包含一条信息:on=1

  2. 一个蚂蚁.xml文件。此文件包含我的构建说明。

我想从我的属性文件中读取特性,如果值为“我想在我的构建文件中执行任务”。否则,我希望它什么都不做。任何人都可以指导我如何做到这一点吗?on1


答案 1

这应该是您需要做的:

1.获取最新版本的 ant-contrib JAR 并放入 Ant 安装的 lib 文件夹中。

2.在构建脚本中包含您的属性

<property file="build.properties"/>

3.将以下任务定义条目添加到构建脚本中

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

4.最后,定义一个 if 任务,如下所示:

<if>
 <equals arg1="${on}" arg2="1" />
 <then>
   <echo message="I am going to do something here" />
 </then>
 <else>
   <echo message="I am going to do nothing" />
 </else>
</if>

请注意,可以在从属性文件导入的属性前面附加标识符。例如,您可以像这样进行导入:

<property file="build.properties" prefix="uniqueprefix"/>

然后你会在你的文件中引用“uniqueprefix.on”,而不仅仅是“on”。

<equals arg1="${uniqueprefix.on}" arg2="1" />

你可以使用Ant的内置条件任务,但我有一种感觉,如果你需要它,你最好使用ant-contrib带来的额外功能。另请注意,将生成文件命名为“build.xml”而不是“ant.xml”的标准。实际上,假设您使用的名称,Ant 将无法自动找到它。祝你好运。


答案 2

如果你不想编写自己的 Ant Task 或使用其他库,只需“清理”ant,看看这个:

mybuild.properties:

on=on

使用 on 或 true 或类似的东西,1 将不起作用。

构建.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="default">
    <property file="mybuild.properties"/>    

    <target name="default" depends="on, off" description="description">
        <echo>default</echo>
    </target>

    <target name="on" if="${on}">
      <echo>on</echo>
    </target>

    <target name="off" unless="${on}">
      <echo>off</echo>
    </target>
</project>

推荐