使用ANT时,如果我有一些特定的java版本,我怎么才能定义任务?
-
02-07-2019 - |
题
我遇到的问题是,只有在构建计算机中安装了Java 1.5时,才能执行Ant中的特定步骤。任务定义使用使用1.5编译的jar文件,因此使用1.4虚拟机运行将抛出IncompatibleClassVersion异常。
我必须找到一个解决方案,同时让这个任务适用于需要1.4的特定项目,但是我遇到了一个问题。如果我没有特定的Java版本,如何避免定义此任务并执行此可选步骤?
我可以使用<!> quot; if <!> quot;或<!>“;除非<!>”;目标标记上的标记,但这些标记仅检查是否设置了属性。我也希望有一个不需要额外库的解决方案,但我不知道标准中的内置功能是否足以执行这样的任务。
解决方案
通过 ant.java.version 属性公开Java版本。使用条件设置属性并仅在其为真时执行任务。
<?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>
其他提示
要检查构建文件的属性是${ant.java.version}
。
您可以使用 <condition>
元素使任务成为有条件的当财产等于某个值时:
<condition property="legal-java">
<matches pattern="1.[56].*" string="${ant.java.version}"/>
</condition>
不隶属于 StackOverflow