我的build.xml中有一个javah
任务。 javah
任务不再适用于Java 10及更高版本,因此我在nativeHeaderDir
任务中添加了javac
,并且工作正常。但是,我仍然想保留javah
任务,以便相同的build.xml适用于较旧的Java。
仅在Java 10及更高版本上运行时,如何才能使ant跳过javah
任务?更一般而言,是否有任何方法可以根据Java版本在build.xml中切换执行路径?或者,还有其他标准方法可以将javah
任务从旧Java迁移到Java 10/11并保持向后兼容吗?
答案 0 :(得分:1)
使用Ant 1.10.2或更高版本支持的<javaversion>
条件。
Ant的最新版本(从1.10.2开始)具有“ javaversion” 您可以用来设置“属性”的条件,然后可以 与目标上的“ if” /“除非”属性一起使用。 这是一个示例:
<target name="the-one-which-has-javah-task" depends="check-java-version"
unless="java10+">
...
</target>
<target name="check-java-version">
<condition property="java10+">
<javaversion atleast="10"/>
</condition>
</target>