2012-06-27 4 views
1

Проведя целый день, пытаясь понять, почему maven не хочет переключать jdk на основе записи в компиляторе-плагине (см. http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html), я обнаружил, что компилятор переключается правильно, но инструмент jar не. Рассмотрим следующие факты:Пакет с правильным jdk

  1. Я добавил блок многократного улова в свой код в качестве теста. Если я устанавливаю тэг в java 7, он компилируется. Если я перейду на 1.6, он сломается. Это ожидаемое поведение.

  2. Однако, если удалить оператор бриллиантом (т.е. компиляции в обоих), и я компилировать с Java 6, я получаю следующее в моем файле манифеста:

    Manifest-Version: 1.0 Archiver-Version: сплетение Archiver Создано-By: Apache Maven Встроенный By: Жако Строить-Jdk: 1.7.0_147-IcedTea ...

Это, конечно, весьма неоднозначно. Есть ли способ установить правильный «инструмент jar», чтобы файл манифеста отражал используемую версию?

+1

Javac! = Баночка .... –

+0

Та часть меня ... хм! Позвольте мне перефразировать: «Как я могу заставить файл манифеста отражать версию используемого java-компилятора». –

+0

Даже если вы скажете java-компилятору использовать 1.6, вы все равно используете свой 1.7 JDK. В этом смысле запись является точной. Считается компиляция с Java 6 JDK, если это так важно? –

ответ

Смежные вопросы