Настройка Maven с двумя версиями Java - PullRequest
1 голос
/ 12 июля 2010

Мне нужно две версии Java, т.е. Java5 и Java6 на одной машине, так как некоторые из моих проектов поддерживают Java6, а некоторые поддерживают Java5. Поэтому я сделал это, поместив путь Java6 в JAVA_HOME и Java5 в JAVA5_HOME. Я добавил оба JAVA_HOME в переменную PATH.

Но когда я делаю Java-версию, то по умолчанию я получаю следующий результат

java version "1.6.0" Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

Возможно ли получить Java5 вместе с Java6 ??

Также хотелось бы знать, возможно ли настроить maven2 с двумя версиями Java (Java1.6 и Java1.5) и использовать требуемую версию для сборки проекта во время выполнения?

Ответы [ 3 ]

2 голосов
/ 12 июля 2010

Один из способов достижения этого описан на сайте maven-compiler-plugin .

Лично я сначала попытался бы использовать параметры компиляции source и targetmojo ( задокументировано здесь ), поскольку это позволит вам настроить таргетинг на 1.5 и 1.6 без переключения на другой компилятор Java.

1 голос
/ 12 июля 2010

Итак, я сделал это, поместив путь Java6 в JAVA_HOME и Java5 в JAVA5_HOME.Я добавил оба JAVA_HOME в переменную PATH.

Не очень хорошая идея (и в любом случае один из них будет первым на пути).Вам следует добавить только JAVA_HOME и указать в нем JDK, который вы хотите использовать (и переключать по требованию).

Также мне хотелось бы знать, возможно ли настроить maven2 с двумя версиямиJava (Java1.6 и Java1.5) и использовать требуемую версию для сборки проекта во время выполнения?

Нет.Maven использует JAVA_HOME, вы можете использовать только один JDK за раз.

Если вы хотите построить один и тот же проект с двумя разными JDK, лучшим вариантом будет использование механизма CI, такого как Hudson, и настройка матрицы сборки.

0 голосов
/ 17 февраля 2016

Я только недавно, после семи долгих лет с Maven, узнал о toolchains.xml. Maven даже документировал и поддерживает его из документации 2.0.9 toolchains

Поэтому я добавил файл toolchain.xml в папку ~ / .m2 / со следующим содержимым:

<toolchains xmlns="http://maven.apache.org/TOOLCHAINS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/TOOLCHAINS/1.1.0 http://maven.apache.org/xsd/toolchains-1.1.0.xsd">
 <!-- JDK toolchains -->
 <toolchain>
   <type>jdk</type>
   <provides>
     <version>1.8</version>
     <vendor>sun</vendor>
   </provides>
   <configuration>
     <jdkHome>/opt/java8</jdkHome>
   </configuration>
 </toolchain>
 <toolchain>
   <type>jdk</type>
   <provides>
     <version>1.7</version>
     <vendor>sun</vendor>
   </provides>
   <configuration>
     <jdkHome>/opt/java7</jdkHome>
   </configuration>
 </toolchain>
</toolchains>

Это позволяет вам определить, какие разные JDK Maven могут использовать для создания проекта, независимо от того, с чем запускается JDK Maven. Вроде как, когда вы определяете JDK на уровне проекта в IDE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...