使用ANT时,如果我有一些特定的java版本,我怎么才能定义任务?

Mar*_*gón 5 java ant conditional

我有一个问题,只有在构建计算机中安装了Java 1.5时,才能执行Ant中的特定步骤.任务定义使用使用1.5编译的jar文件,因此使用1.4虚拟机运行将抛出IncompatibleClassVersion异常.

我必须找到一个解决方案,同时让这个任务适用于需要1.4的特定项目,但是我遇到了一个问题.如果我没有特定的Java版本,如何避免定义此任务并执行此可选步骤?

我可以在目标标签上使用"if"或"unless"标签,但这些标签只检查是否设置了属性.我也希望有一个不需要额外库的解决方案,但我不知道标准中的内置功能是否足以执行这样的任务.

McD*_*ell 10

Java版本通过ant.java.version属性公开.使用条件设置属性并仅在其为真时执行任务.

<?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>
Run Code Online (Sandbox Code Playgroud)