在Ant脚本中进行Java版本检查的未来保障

3

这里提供的脚本可以很好地检查Ant是否使用Java 6

<?xml version="1.0" encoding="UTF-8"?>

<project name="project" default="default">

    <target name="default" depends="javaCheck" if="isJava6">
        <echo message="Hello, World!" />
    </target>

    <target name="javaCheck">
        <echo message="ant.java.version=${ant.java.version}" />
        <condition property="isJava6">
            <equals arg1="${ant.java.version}" arg2="1.6" />
        </condition>
    </target>

</project>

然而,我有充分的理由认为接替我的职位的人可能不是Java程序员,我希望确保构建过程不会因为Java 7而失败。有没有办法拆分字符串或以其他方式请求Java 6或更高版本


你需要知道脚本中JVM级别的原因是什么? - Thorbjørn Ravn Andersen
我正在尝试防范Mac 10.5上的Java 5 javac。该javac不知道Java 6库。Ant中的<javac>任务没有提供指定所需版本的方法,除非使用<fork>并提供bin的确切路径。<target>标签只处理兼容性问题;它不能使旧的javaroot中的旧javac了解其他javaroot中的jre库。 - Yuvi Masory
底线是:我需要编译一个使用新的Desktop类的程序,并且我希望脚本在人们的Java版本不兼容时发出警告。这样他们就不会收到关于未知符号的混乱编译器错误信息了。 - Yuvi Masory
2个回答

1

注意,ant.java.version返回的是Ant构建时使用的JDK版本,直到Ant 1.6.5为止...


0
您可以使用ContainsRegEx任务来对Java版本字符串进行正则表达式匹配。否则,很多事情都取决于您希望通过该版本检查来保护什么。例如,javac任务有多种方法来指定为其构建类的JVM版本。因此,如果您决定不使用示例中的条件语句方法,则可能取决于特定任务在处理不同JVM版本时支持何种方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接