繁体   English   中英

如果Java版本为1.5或1.6,则无法构建ant

[英]Failing a ant build if the Java version is 1.5 or 1.6

我有一个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,该怎么做?

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

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

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

另外,您可能必须取消它。

我使用下面的测试; $ {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>

Ant团队本身采取的方法是验证Java7中添加的内容是否确实存在。 这样,当Java9发行时,您无需更改构建文件-如果人们使用Java 1.4,则无需感到惊讶。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM