java - Ant:在1个文件中设置属性,在另一个文件中读取它?

标签 java ant ant-contrib

我有以下 Ant 构建文件 importer.xml :

<project name="importer" basedir=".." default="build">
    <import file="imported.xml"/>

    <target name="build">
        <!-- Do some stuff... -->

        <property name="isRunningFromImporter" value="true"/>
        <antcall target="run-now"/>
    </target>
</project>

还有另一个构建文件 imported.xml使用 ant-contrib 任务:

<project name="importer" basedir=".." default="build">
    <!-- Most of file omitted for brevity -->

    <target name="run-now">
        <if>
            <not-equals arg1="${isRunningFromImporter}" arg2="true"/>
            <then>
                <!--
                    This should only execute when the
                    isRunningFromImporter property is not true.
                -->
            </then>
        </if>
    </target>
</project>

imported#run-now目标可以作为独立的 Ant 任务运行,例如:

ant -buildfile imported.xml run-now

在这种情况下,我不想要 <then>已执行的条款/任务。但是,如果您运行与导入 importer.xml 相同的任务:

ant -buildfile importer.xml build

然后我想要<then>要执行的子句/任务,但是,Ant 不允许我查看一个文件中的属性并在另一个文件中读取它。有任何想法吗?提前致谢!

最佳答案

默认情况下它会执行您想要的操作。 Antcall 的“inheritAll”属性设置为 true。

运行以下代码会回显“true”,表明该属性实际上已设置。

<project name="importer" basedir=".." default="build">
    <import file="imported.xml"/>

    <target name="build">
        <!-- Do some stuff... -->

        <property name="isRunningFromImporter" value="true"/>
        <antcall target="run-now"/>
    </target>
</project>

<project name="importer" basedir="..">
    <!-- Most of file omitted for brevity -->

    <target name="run-now">

        <echo>${isRunningFromImporter}</echo>
    </target>
</project>

我不熟悉<not-equals arg1="${isRunningFromImporter}" arg2="true"/> 。我一直用<not><equals ...>反而。不等于从何而来?您确定问题不在该行吗?

关于java - Ant:在1个文件中设置属性,在另一个文件中读取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12873267/

相关文章:

java - 使用 apache poi 将方程式从 Word (*.docx) 读取为 HTML 及其文本上下文

unit-testing - PHPUnit 本身的错误

java - Spring MVC App index.jsp 未在浏览器中显示,HTTP 404 结果

Ant - 如果条件/和-或

java - 如何将java层的数据组装成一个字符串

java.sql.SQLException : Invalid value for getInt() - 'Glomindz Support' 异常

java - 如何使用交错线程停止我的程序

javascript - 连接几个 javascript 文件时出现问题

mysql - 如何在 Ant 中查找可执行文件的路径

java - 文件路径的 Ant Propertyregex 部分