我有一个ant构建文件,它首先检查我系统中JAVA的版本。代码是这样的 -
<target name="-private.check.java">
<echo message="Ant java version: ${ant.java.version}" />
</target>
输出是 -
-private.check.java:
[echo] Ant java version: 1.7
现在我想在java版本低于1.7的情况下使Build Fail,我该怎么做?
答案 0 :(得分:1)
<target name="checkJava">
<fail message="Unsupported Java version: ${java.version}. Make sure that the Java version is 1.7.">
<condition>
<not>
<or>
<contains string="${java.version}" substring="1.7" casesensitive="false" />
<contains string="${java.version}" substring="1.8" casesensitive="false" />
</or>
</not>
</condition>
</fail>
</target>
答案 1 :(得分:0)
我知道的方法是使用以下方法:
<condition property="version1.6">
<or>
<equals arg1="1.5" arg2="${ant.java.version}"/>
<equals arg1="1.6" arg2="${ant.java.version}"/>
</or>
</condition>
另外,你可能不得不否定它。
答案 2 :(得分:0)
我使用下面的测试; $ {ant.java.version}(用于运行Ant的Java版本)和$ {java.version}(将通过分叉任务在PATH上找到的Java)之间存在细微差别,因此您可能需要根据您的需要修改使用的属性。
<fail message="ERROR: This project requires Java 7 or above; you are using ${java.version}.">
<condition>
<matches string="${java.version}" pattern="^1\.[0-6]"/>
</condition>
</fail>
答案 3 :(得分:0)
Ant团队本身采用的方法是验证Java7中添加的内容实际存在。这样,当Java9出现时,您不需要更改构建文件 - 如果人们使用Java 1.4,您会感到惊讶。
<fail message="Java7 is required to build">
<condition>
<not>
<available classname="java.nio.file.FileSystem"/>
</not>
</condition>
</fail>