Ant-当目录不存在时跳过任务
我有一组项目,它们使用来自“父”项目的构建文件。在每个项目包含测试目录之前,所有项目都可以正常工作。 现在我有一个新项目,它还没有测试,所以如果测试目录不存在,我不想运行测试任务。(原始脚本失败,Ant-当目录不存在时跳过任务,ant,javac,Ant,Javac,我有一组项目,它们使用来自“父”项目的构建文件。在每个项目包含测试目录之前,所有项目都可以正常工作。 现在我有一个新项目,它还没有测试,所以如果测试目录不存在,我不想运行测试任务。(原始脚本失败,srcdir“C:\.jenkins\jobs\Cenne Papiry\workspace\test”不存在!) 我试图仅在测试目录存在时设置test.src属性: <available file="test" property="test.src" value="test"/> ()
srcdir“C:\.jenkins\jobs\Cenne Papiry\workspace\test”不存在!
)
我试图仅在测试目录存在时设置test.src属性:
<available file="test" property="test.src" value="test"/>
(
)
如何实现我的目标?您的代码是正确的,应该可以在大多数ant版本中使用。下面是一个测试片段,它应该独立运行,在ant 1.7.1和1.9.4中测试:
<project name="bar" default="tests" basedir=".">
<available file="foo" property="test.src" value="anything"/>
<target name="tests" if="test.src">
<echo message="folder or file foo exists"/>
</target>
</project>
可能重复,我似乎记得,如果和除非目标上希望属性中有一个布尔值(true | false)。@HankLapidez,适用于ANT>=1.8。在此之前,只需检查属性是否已定义。无论哪种方式,“可用”任务仅在文件存在时设置属性。也就是说,上面的代码对我有用。@CiaPan你的链接问,我知道什么(-这很好),我的问题完全不同。这很有效。谢谢,但完整的答案是:1。属性不能定义:我有并且在初始化任务中:-它不工作。2.一项失败的任务也需要条件,所以我不仅需要条件,而且需要条件。如果未定义属性或属性已定义且计算结果为false,则“if”条件的计算结果为false。只要不给它下定义,你就没事了。需要注意的要点:ANT属性是不可更改的。这意味着如果您先设置属性,您将无法再将其设置为其他属性。引用docs的话:“属性是不可变的:无论谁设置了属性,都会在构建的其余部分将其冻结;它们绝对不是变量。”
C:\Users\vackova\workspace\commons-agata\build.xml:246: srcdir attribute must be set!
<project name="bar" default="tests" basedir=".">
<available file="foo" property="test.src" value="anything"/>
<target name="tests" if="test.src">
<echo message="folder or file foo exists"/>
</target>
</project>