java - not - maven 4
Por qué Maven usa JDK 1.6 pero mi versión de Java es 1.7 (9)
La solución de @MasterGaurav está funcionando perfectamente,
Normalmente pongo el conmutador java en una función zsh:
alias java_ls=''/usr/libexec/java_home -V 2>&1 | grep -E "/d./d./d[,_]" | cut -d , -f 1 | colrm 1 4 | grep -v Home''
function java_use() {
export JAVA_HOME=$(/usr/libexec/java_home -v $1)
echo export "JAVA_HOME=$(/usr/libexec/java_home -v $1)" > ~/.mavenrc
export PATH=$JAVA_HOME/bin:$PATH
java -version
}
Luego puede ejecutar java_ls
two obtener todo el jvm disponible en su máquina, ejecutar java_use 1.7
para usar la versión 1.7 tanto para java como para maven.
Soy nuevo en maven, y también en MacOS.
He configurado Maven en mi terminal, y al obtener la configuración de la versión (usando mvn -v
) parece que usa JDK 1.6, mientras tengo instalado JDK 1.7. ¿Hay algo mal?
Los comandos que ingreso son estos:
blues:helloworld Ninja$ java -version
java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)`
blues:helloworld Ninja$ mvn -v
Apache Maven 3.1.0 (893ca28a1da9d5f51ac03827af98bb730128f9f2; 2013-06-28 10:15:32+0800) Maven home: /usr/local/Cellar/maven/3.1.0/libexec Java version: 1.6.0_51, vendor: Apple Inc. Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: zh_CN, platform encoding: EUC_CN OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
Llegué tarde a esta pregunta, pero creo que la mejor manera de manejar las versiones de JDK en MacOS es mediante el uso del script descrito en: http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/
Me ayudó. Solo agrégalo en tu pom.xml.
De forma predeterminada, el complemento del compilador Maven usa Java 1.5 o 1.6, debe redefinirlo en su pom.xml.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Meterse en
/System/Library/Frameworks/JavaVM.framework/Versions
y actualice el enlace simbólico CurrentJDK
para señalar
/Library/Java/JavaVirtualMachines/YOUR_JDK_VERSION/Contents/
P.ej
cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/ CurrentJDK
Ahora funcionará inmediatamente.
Para usuarios de Eclipse. Si tiene una Configuración de ejecución que limpia el paquete, por ejemplo.
En el panel de Configuración de ejecución hay una pestaña JRE donde puede especificar en qué tiempo de ejecución debe ejecutarse. Tenga en cuenta que esta configuración anula todo lo que está en el pom.xml.
Por favor revisa la compatibilidad. mvn 3.2.1
con mvn 3.2.1
y jdk 1.6.0_37
durante muchas horas. Todas las variables se establecieron pero no funcionaba. Finalmente actualicé jdk to 1.8.0_60
y mvn 3.3.3
y funcionó. Variables de entorno de la siguiente manera:
JAVA_HOME=C:/ProgramFiles/Java/jdk1.8.0_60
MVN_HOME=C:/ProgramFiles/apache-maven/apache-maven-3.3.3
M2=%MVN_HOME%/bin extend system level Path- ;%M2%;%JAVA_HOME%/bin;
También puede decirle explícitamente a maven qué versión de Java compilar. Puedes intentar agregar el maven-compiler-plugin
a tu pom.
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
Si importó un proyecto maven en un IDE, entonces probablemente haya una configuración maven en su IDE para el compilador predeterminado que está utilizando su corredor maven.
También puedes hacer,
<properties>
...
<!-- maven-compiler-plugin , aka JAVA Compiler 1.7 -->
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
...
</properties>
agregue lo siguiente a su ~/.mavenrc
:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/{jdk-version}/Contents/Home
Segunda solución:
echo export "JAVA_HOME=/$(/usr/libexec/java_home)" >> ~/.bash_profile