java - 如何使用 Java 10 及更高版本跳过 ant 中的 javah 任务?
问题描述
我的 build.xml 中有一个javah
任务。该javah
任务不再适用于 Java 10 及更高版本,因此我添加nativeHeaderDir
了一个javac
任务,它运行良好。但是,我仍然想保留该javah
任务,以便相同的 build.xml 适用于较旧的 Java。
javah
仅在使用 Java 10 及更高版本运行时,如何使 ant 跳过任务?更一般地说,有什么办法可以根据Java版本切换build.xml中的执行路径吗?或者,是否有任何其他标准方法可以将javah
任务从旧 Java 迁移到 Java 10/11,同时保持向后兼容性?
解决方案
使用<javaversion>
Ant 1.10.2 或更高版本支持的条件。
来自Ant 邮件列表:
Ant 的最新版本(从 1.10.2 开始)有一个“javaversion”条件,您可以使用它来设置一个“属性”,然后可以将其与目标上的“if”/“unless”属性一起使用。这是一个例子:
<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>
推荐阅读
- php - 无法使用 SQL Server 在 Datatables 服务器端使用 order 和 limit
- photoshop - Extendscript 与 Photoshop:导入图像
- google-app-engine - GCS - 基于端口的拆分流量(GAE 和存储之间)
- hashtable - 不同图像的校验和相同
- python - Python Selenium Firefox 自定义配置文件保存
- reactjs - 如何在 React 应用程序中正确加载和使用 API?
- python - 在 Cartopy,Robinson 投影中绘制一条直线
- python - 在数据框中创建一个新列
- angular - 在 Angular 中链接安全导航运算符未按预期工作
- javascript - Popper菜单上的Z-Index?