Jak ustawić konkretną wersję Javy na Maven
Na moim komputerze mam zainstalowane dwie wersje Javy: (1.6 i 1.7 zainstalowane ręcznie przeze mnie). Potrzebuję ich obu do różnych projektów. Ale dla Mavena potrzebuję 1.7, teraz mój Maven używa wersji java 1,6, jak Mogę ustawić Mavena na 1.7?
8 answers
Maven używa parametru JAVA_HOME
, aby znaleźć wersję Javy, którą ma uruchomić. Widzę z twojego komentarza, że nie można tego zmienić w konfiguracji.
- możesz ustawić parametr
JAVA_HOME
tuż przed uruchomieniem Mavena (i w razie potrzeby zmienić go z powrotem). - możesz też wejść do swojego
mvn
(nie-windows)/mvn.bat
/mvn.cmd
(windows) i ustaw tam swoją wersję Javy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-11 08:45:00
W POM można ustawić właściwości kompilatora, np. dla 1.8:
<project>
...
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
</project>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-30 15:38:18
Dodając moje dwa centy i wyraźnie dostarczając rozwiązanie.
Mam dwa JDK zainstalowane na moim komputerze z systemem Windows - JDK 1.5
i JDK 1.6
.
Moje domyślne (i ustawione na zmienną środowiskową systemu windows) JAVA_HOME
jest ustawione na JDK 1.5
.
JDK 1.6
.
Moje rozwiązanie w tym scenariuszu (które zadziałało!), jest zgodnie z sugestią @DanielBarbarian
, aby ustawić go w mvn.bat
.
Dla niektórych nie znam pliku wsadowego Windowsa, po prostu dodałem linię set JAVA_HOME=<path_to_other_jdk>
po @REM ==== START VALIDATION ====
w mvn.bat
(tj., %MAVEN_HOME%\bin\mvn.bat
):
@REM ==== START VALIDATION ====
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45\jre
if not "%JAVA_HOME%" == "" goto OkJHome
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-08 02:49:54
Na windows
Jeśli nie chcesz zmieniać swojej zmiennej JAVA_HOME
wewnątrz zmiennych systemowych.
Edytuj swój plik mvn.bat
i dodaj wiersz w ten sposób
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45\jre
Można to zrobić po @REM ==== START VALIDATION ====
Jak wspomina @ Jonathan
Na Mac (&Linux ?)
Jeśli nie chcesz zmieniać swojej zmiennej JAVA_HOME
wewnątrz ~/.bashrc
lub ~/.bash_profile
Możesz utworzyć plik ~/.mavenrc
i przedefiniować swój JAVA_HOME
za pomocą java_home narzędzie
export JAVA_HOME=`/usr/libexec/java_home -v 1.7.0_45`
Kontrola Zdrowia Psychicznego
Możesz sprawdzić, czy wszystko działa poprawnie, wykonując następujące polecenia. Wersja jdk powinna być inna.
mvn -version
Then
java -version
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-30 08:19:00
[1]} niedawno, po siedmiu długich latach pracy z Mavenem, dowiedziałem się o łańcuchach narzędzi.xml. Maven ma nawet udokumentowane i obsługuje go od 2.0.9 - toolchains documentation
Więc dodałem toolchain.plik xml do mojego ~/.m2 / folder o następującej treści:
<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>
Pozwala określić, jakie różne JDK Maven może użyć do zbudowania projektu niezależnie od JDK Maven działa z. Coś jak definiowanie JDK na poziomie projektu w IDE.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-17 17:27:14
Dodanie rozwiązania dla osób z wieloma zainstalowanymi wersjami Javy
Mamy dużą bazę kodową, z których większość jest w Javie. Większość tego, nad czym pracuję, jest napisana w Javie 1.7 lub 1.8. Ponieważ JAVA_HOME
jest statyczne, utworzyłem w moim .bashrc
aliasy do uruchamiania Mavena o różnych wartościach:
alias mvn5="JAVA_HOME=/usr/local/java5 && mvn"
alias mvn6="JAVA_HOME=/usr/local/java6 && mvn"
alias mvn7="JAVA_HOME=/usr/local/java7 && mvn"
alias mvn8="JAVA_HOME=/usr/local/java8 && mvn"
To pozwala mi uruchomić Mavena z linii poleceń na mojej maszynie deweloperskiej, niezależnie od wersji JDK używanej w projekcie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-20 16:09:22
Aby uniknąć wpływu na twój projekt i Zmienne środowiskowe, możesz skonfigurować wtyczkę kompilatora Maven tylko do pom projektu, określając źródłową i docelową wersję Javy
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-02 09:25:22
Jedno proste rozwiązanie problemu -
JAVA_HOME= / usr / lib / jvm / java-6-sun / mvn clean install
Na Macu wyglądałoby to jak -
JAVA_HOME= / Library / Java / JavaVirtualMachines / jdk1.7.0_21.jdk / Contents/ Home / mvn clean install
PS: jeden szczególny przypadek, który znalazłem to powyższe polecenie nie działa na' fish ' shell. Miałem również dostępną powłokę bash i działało dobrze. wystarczy użyć polecenia 'bash', aby przełączyć się na bash shell.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-03 12:23:05