Могу ли я указать путь JDK для компиляции в Ant build.xml?

Я хотел бы использовать JDK 1.6 для ветви проекта, в то время как другие продолжают использовать JDK 1.5. Разработчики хотят время от времени переключаться между ними.

Итак, как лучший способ указать Ant javac , какой JDK использовать? Под лучшим я подразумеваю надежный, прозрачный, не требующий обслуживания, версионный вместе с исходным кодом (сам Ant и JDK, конечно же, нет, но они живут в стандартных местах).


Я полагаю, что очевидным - а не лучшим- способом было бы вне Ant : продолжайте изменять переменную JAVA_HOME env. Однако это потребовало бы от разработчиков переключения вручную (еще одна вещь, которую следует помнить: подверженность ошибкам), изменение всех серверов сборки -many- (теперь у меня больше работы).

Ищу какой-нибудь простой атрибут javac, например jdk- path , вместо этого я заметил несколько (благодаря чтению в сети и в SO):

  • compiler - достаточно честно, но в документации говорится: « modern: .. javac1.5 and javac1. 6 .. как псевдонимы ".. Мне это говорит о том, что это не будет иметь никакого значения - не так ли?
  • источник - кажется, связан только с версией JLS (хотя не% 100 ясно из документации ссылка выше)
  • target - версия байт-кода
  • bootclasspath - в некоторых ответах SO это упоминается, но довольно непонятно и кажется хакерским
  • исполняемым файлом - путь к javac, но не к библиотекам .. - кажется наиболее близким совпадением, неявно указывающим путь JDK? ОБНОВЛЕНИЕ: подтверждено форком JB Nizet
  • - похоже, мне здесь понадобится true (иначе он просто проигнорирует вышеприведенное без ошибок?). ОБНОВЛЕНИЕ: какие-либо последствия для производительности по сравнению с дефолтом? (Я думаю, что время запуска JVM в наши дни лучше, но все же)

Так что, похоже, ничего из этого не помогает .. не эквивалентна ли какая-либо их комбинация установке JAVA_HOME перед запуском Ant?

У меня есть несколько хаков в виду (например, обертывание исполняемого файла ant на каждой платформе, чтобы установить эту переменную env - довольно печально), но я действительно надеюсь, что что-то пропустил :)

6
задан inger 13 February 2011 в 21:50
поделиться