Je suis nouveau sur Maven, et aussi sur MacOS.
J'ai installé maven dans mon terminal, et lors de l'obtention des paramètres de version (avec mvn -v
), il semble qu'il utilise JDK 1.6, alors que JDK 1.7 est installé. Y a-t-il quelque chose qui ne va pas?
Les commandes que j'entre sont celles-ci:
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"
ajoutez ce qui suit à votre ~/.mavenrc
:
export Java_HOME=/Library/Java/JavaVirtualMachines/{jdk-version}/Contents/Home
echo export "Java_HOME=\$(/usr/libexec/Java_home)" >> ~/.bash_profile
Entrer dans
/System/Library/Frameworks/JavaVM.framework/Versions
et mettez à jour le lien symbolique CurrentJDK
vers lequel pointer
/Library/Java/JavaVirtualMachines/YOUR_JDK_VERSION/Contents/
Par exemple.
cd /System/Library/Frameworks/JavaVM.framework/Versions
Sudo rm CurrentJDK
Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/ CurrentJDK
Maintenant cela fonctionnera immédiatement.
Vous pouvez aussi faire
<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>
Vous pouvez également indiquer explicitement à maven pour quelle version Java compiler. Vous pouvez essayer d’ajouter le maven-compiler-plugin
à votre 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 vous avez importé un projet maven dans un IDE, il existe probablement un paramètre maven dans votre compilateur IDE par défaut utilisé par votre coureur maven.
Ça m'a aidé. Ajoutez-le simplement dans votre pom.xml.
Par défaut, le plugin maven compiler utilise Java 1.5 ou 1.6, vous devez le redéfinir dans votre 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>
Pour les utilisateurs d'Eclipse. Si vous avez une configuration d'exécution qui nettoie le package, par exemple.
Dans le panneau Exécuter la configuration, un onglet JRE permet de spécifier le moteur d'exécution à exécuter. Notez que cette configuration remplace ce qui se trouve dans le fichier pom.xml.
Je suis en retard par rapport à cette question, mais je pense que la meilleure façon de gérer les versions de JDK sur MacOS consiste à utiliser le script décrit à l'adresse suivante: http://www.jayway.com/2014/01/15/how-to -switch-jdk-version-sur-mac-os-x-maverick /
S'il vous plaît vérifier la compatibilité. J'ai lutté avec mvn 3.2.1
et jdk 1.6.0_37
pendant plusieurs heures. Toutes les variables ont été définies mais ne fonctionnaient pas. Enfin, j'ai mis à niveau jdk to 1.8.0_60
et mvn 3.3.3
et cela a fonctionné. Variables d'environnement comme suit:
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;
La solution de @MasterGaurav fonctionne parfaitement,
Je mets normalement le chose Java dans une fonction 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
}
Ensuite, vous pouvez exécuter Java_ls
deux obtenir tout le JVM disponible sur votre ordinateur, exécuter Java_use 1.7
pour utiliser la version 1.7 à la fois pour Java et maven.