Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Java版本为1.5或1.6,则ant构建失败_Java_Ant - Fatal编程技术网

如果Java版本为1.5或1.6,则ant构建失败

如果Java版本为1.5或1.6,则ant构建失败,java,ant,Java,Ant,我有一个ant构建文件,它首先检查我的系统中JAVA的版本。代码是这样的- <target name="-private.check.java"> <echo message="Ant java version: ${ant.java.version}" /> </target> 现在,如果java版本低于1.7,我想让构建失败,我该怎么做?我知道的方法是使用以下方法: <condition property="version1.6">

我有一个ant构建文件,它首先检查我的系统中JAVA的版本。代码是这样的-

<target name="-private.check.java">
  <echo message="Ant java version: ${ant.java.version}" />
</target>

现在,如果java版本低于1.7,我想让构建失败,我该怎么做?

我知道的方法是使用以下方法:

<condition property="version1.6">  
  <or>     
    <equals arg1="1.5" arg2="${ant.java.version}"/>  
    <equals arg1="1.6" arg2="${ant.java.version}"/>  
  </or>     
 </condition>

另外,你可能必须否定它。


<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>

我使用下面的测试;${ant.java.version}(用于运行ant的java版本)和${java.version}(分叉任务将在路径上找到的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>

Ant团队自己采取的方法是验证Java7中添加的内容是否确实存在。这样,当Java9出现时,您就不需要更改构建文件——或者如果人们使用Java1.4,您也不会感到惊讶

<fail message="Java7 is required to build">
  <condition>
    <not>
      <available classname="java.nio.file.FileSystem"/>
    </not>
  </condition>
</fail>

我对ant非常陌生,您能提供完整的代码吗?java 8呢?OP想要小于1.7。
<fail message="Java7 is required to build">
  <condition>
    <not>
      <available classname="java.nio.file.FileSystem"/>
    </not>
  </condition>
</fail>