gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:06:37 26 4
gpt4 key购买 nike

我有以下 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com