Maven ne peux pas compiler java 1.8
Je suis en train d'utiliser maven pour générer un jar mais je reçois l'erreur
ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
(default-compile) on project Application: Fatal error compiling: invalid target release: 1.8 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
mvn -v sorties
mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T09:29:23-08:00)
Maven home: /usr/local/Cellar/maven/3.2.5/libexec
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.10.1", arch: "x86_64", family: "mac"
De sorte qu'il ressemble à son pointant vers le jdk 1.6
mais j'ai le 1.8 jdk
java -version
java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
POM.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.brian.ridecellchallenge</groupId>
<artifactId>Application</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.group.id.Launcher1</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
Qu'est-ce que votre JAVA_HOME?
A l'une des réponses à résoudre votre problème?
A l'une des réponses à résoudre votre problème?
OriginalL'auteur Brian | 2015-01-15
Vous devez vous connecter pour publier un commentaire.
Maven s'appuie sur la variable d'environnement JAVA_HOME. Définir en fonction de vos OS et de ré-exécuter votre build.
Edit:
L'utilisation d'exportation pour définir la variable.
OriginalL'auteur
Comme un MacOS utilisateur, ouvrez un
Terminal
et de créer ou modifier un fichier.bash_profile
(dans le répertoire de l'utilisateur de votre maison) et de mettre le bout de code suivant:Enregistrez ce fichier et ouvrir un Terminal instance. Si vous exécutez
export
comme une commande, vous devriez voir un valideJAVA_HOME
avec l'emplacement de votre JDK 8 de l'installation. Redémarrez votre IDE par la suite et maven devrait être en mesure de vous construire nice javatarget 1.8
code.OriginalL'auteur
vous pouvez essayer de configuration dans le compilateur plugin. Son travail sur mon local
OriginalL'auteur
Parce que Maven ne sais pas la version du jdk que vous voulez construire.
Vous pouvez essayer avec
OriginalL'auteur
J'ai remarqué qu'il me semble que maven-compiler-plugin ignore les configurations
En fait à la construction de mon projet avec -X maven, je vois que dans la configuration de maven-compiler-plugin la source et la cible ont été forcés d'être 1.6:
J'ai résolu le problème après beaucoup de recherches et tente, en forçant le compilateur de java à utiliser sur le bouton source et cible:
À ceci s'ajoute les paramètres de javac les deux paramètres ci-dessus, remplacer la valeur par défaut.
Dans mon cas, tout fonctionne bien.
Juste une remarque: je vois qu'avec la configuration ci-dessus, maven appelle la javac de cette façon:
Les deux premiers "source" et "cible" paramètres par défaut sont les paramètres qui le maven-compiler-plugin utilise; le second couple de paramètres sont les paramètres ajoutés par le plugin en raison de la configuration "compilerArguments" décrit ci-dessus. Il semble que javac utilise juste le dernier couple de paramètres (si un paramètre est répété plusieurs fois, la dernière écrase toutes les previouses), mais je ne suis pas sûr que cela peut être considéré comme un standard et "sûr" de comportement.
J'ai utilisé différentes versions de maven-compiler-plugin, différente de la version de maven. J'ai vérifié en profondeur toutes mes configurations (par exemple, les variables du système, tous les scripts utilisés dans l'exécution de java ou de maven et ainsi de suite) et je suis sûr que tout est ok.
C'est étrange, mais ma conclusion est qu'il y a un bug dans le maven-compiler-plugin avec java 8.
OriginalL'auteur
Je ne suis pas sûr, mais pouvez-vous essayer de mettre à jour votre maven.plugin version
essayer
tous ses sous pom.xml 🙂
OriginalL'auteur
Si quelqu'un a de l'Eclipse Kepler SR2 et a un problème avec Java 1.8 lors de la construction du projet avec Maven, essayez d'aller à Eclipse Marketplace et de recherche pour le plugin appelé Java 8 support pour m2e pour Eclipse Kepler SR2 cela m'a aidé, et maintenant Maven compile Java 1,8 source sans problème.
OriginalL'auteur
Oui, il semble qu'un bug dans le maven-compiler-plugin.Lorsque j'ai mis à niveau à partir de 3.1 à la 3.5.1, il fonctionne.
vous pouvez vérifier les versions disponibles pour maven-compiler-plugin: mvnrepository.com/artifact/org.apache.maven.plugins/...
Étrange. Maintenant, je vois ces versions. Je ne sais pas ce que j'ai vu à l'époque...
OriginalL'auteur