Как пропустить задачу javah в ant с Java 10 и выше?

В моем build.xml есть задача javah. Задача javah больше не работает с Java 10 и выше, поэтому я добавил nativeHeaderDir к задаче javac, и она работает нормально. Однако я все же хочу сохранить задачу javah, чтобы тот же build.xml работал и для старой Java.

Как я могу заставить муравья пропустить задачу javah только при работе с Java 10 и выше? В более общем плане есть ли способ переключить путь выполнения в build.xml в зависимости от версии Java? Или есть ли другой стандартный способ переноса задачи javah со старой Java на Java 10/11 с сохранением обратной совместимости?


person Rei    schedule 06.05.2019    source источник


Ответы (1)


Используйте условие <javaversion>, поддерживаемое Ant 1.10.2 или более поздней версии.

Из ссылки Список рассылки Ant:

Последние версии Ant (начиная с 1.10.2) имеют условие «javaversion», которое вы можете использовать для настройки «свойства», которое затем можно использовать с атрибутом «если»/«если» для цели. Вот пример:

<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>
person Rei    schedule 07.05.2019
comment
Добро пожаловать Рей. Ссылаясь на сторонний материал в ответах, пожалуйста, указывайте достаточно информации, чтобы сформировать полный ответ, не переходя по ссылке. - person martin clayton; 08.05.2019
comment
Понятно. Спасибо. - person Rei; 10.05.2019