Как пропустить задачу javah в ant с Java 10 и выше? - PullRequest
2 голосов
/ 07 мая 2019

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

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

1 Ответ

1 голос
/ 07 мая 2019

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

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

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

<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>
...