J'ai un projet Maven créé et cloné à partir d'un dépôt git sur mon Eclipse. Il est construit sur Java 8. La première chose que je fais est de
mvn clean install
Mais je reçois le message d'échec suivant:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Maven ---
[INFO] Deleting /Users/vshukla/git/Prism/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/vshukla/git/Prism/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 66 source files to /Users/vshukla/git/Prism/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/scanUtility.Java:[54,52] diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/AppUtility.Java:[87,86] diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/ComparisionUtility.Java:[58,52] diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
[INFO] 3 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.266 s
[INFO] Finished at: 2017-03-01T12:11:27+05:30
[INFO] Final Memory: 13M/309M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Maven: Compilation failure: Compilation failure:
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/scanUtility.Java:[54,52] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/AppUtility.Java:[87,86] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/ComparisionUtility.Java:[58,52] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] -> [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/MojoFailureException
Cependant, vous trouverez ci-dessous les détails du chemin de construction du projet dans lequel JRE-8 est clairement configuré:
et la compilation mise en place:
Peu importe combien de fois je construis le projet, j'obtiens la même erreur. Même après avoir nettoyé le projet et l'avoir actualisé à partir d'Eclipse, cela n'aide pas. S'il vous plaît guider.
METTRE À JOUR:
Après avoir ajouté les propriétés pour définir le plugin maven compiler
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
,
je reçois l'erreur ci-dessous:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Maven ---
[INFO] Deleting /Users/vshukla/git/Prism/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/vshukla/git/Prism/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 66 source files to /Users/vshukla/git/Prism/target/classes
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING :
[INFO] -------------------------------------------------------------
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java uses or overrides a deprecated API.
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: Recompile with -Xlint:deprecation for details.
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: Some input files use unchecked or unsafe operations.
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: Recompile with -Xlint:unchecked for details.
[INFO] 4 warnings
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[26,22] package com.Apple.eawt does not exist
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,41] cannot find symbol
symbol: class Application
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,67] cannot find symbol
symbol: variable Application
[INFO] 3 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.591 s
[INFO] Finished at: 2017-03-01T13:09:47+05:30
[INFO] Final Memory: 21M/347M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Maven: Compilation failure: Compilation failure:
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[26,22] package com.Apple.eawt does not exist
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,41] cannot find symbol
[ERROR] symbol: class Application
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,67] cannot find symbol
[ERROR] symbol: variable Application
[ERROR] -> [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/MojoFailureException
Et voici l'extrait de code donnant l'erreur de compilation de la classe MainUITabbed:
import com.Apple.eawt.Application;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Application application = Application.getApplication(); // line 93
ImageIcon imgicon = new ImageIcon(getClass().getResource(
"ICON.jpg"));
Image img = imgicon.getImage();
application.setDockIconImage(img);
MainUITabbed frame = new MainUITabbed();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Ajouter ceci à POM a résolu le problème pour moi. Veuillez ajuster la version selon vos besoins
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Je ne pense pas que IDE soit pertinent ici. Après tout, vous utilisez un Maven et Maven n’a pas de source qui permette de compiler les opérateurs Diamond ..__ Donc, je pense que vous devriez configurer maven-compiler-plugin lui-même.
Vous pouvez lire à ce sujet ici . Mais en général, essayez d’ajouter les propriétés suivantes:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
et voyez s'il compile maintenant uniquement dans Maven.
J'ai eu le même problème et j'ai changé cela
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
ici 1.7 est mon JDK version.it a été résolu.
Dans mon cas, cela est dû à une incompatibilité avec OpenJDK 9 (sur laquelle je n'ai pas enquêté).
Si vous n'avez pas besoin de JDK 9, une solution temporaire consiste à le purger de votre machine:
Sudo apt-get remove --purge openjdk-9-jdk openjdk-9-jre
Sudo apt-get remove --purge openjdk-9-jdk-headless openjdk-9-jre-headless
Copain,
Si tout cela est à jour, même si vous rencontrez ce problème, alors
Essayez d’exécuter cette commande directement depuis le terminal au lieu d’exécuter depuis Eclipse.$ mvn clean install
et assurez-vous que ces choses:
car il venait à cause de la non concordance de version de Java, donc je l’ai corrigé et je suis capable de construire le fichier war. J'espère que cela aidera quelqu'un
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
Jdk 9 et 10 solution
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler.version}</version>
<configuration>
<source>${Java.version}</source>
<target>${Java.version}</target>
<debug>true</debug>
</configuration>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>6.2</version>
</dependency>
</dependencies>
</plugin>
et assurez-vous que votre assistant pointe vers JDK 10 ou 9 . mvn -v
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T14:49:05-05:00)
Maven home: C:\devplay\Apache-maven-3.5.3\bin\..
Java version: 10.0.1, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-10.0.1
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", Arch: "AMD64", family: "windows"
Si vous êtes capable de compiler mvn compile
le projet avec succès depuis le terminal mais pas depuis Eclipse, cliquez sur Fenêtre> Préférences> JRE installés, assurez-vous d’avoir sélectionné JRE sous JDK (consultez les chemins de 2 JRE différents dans l’image), comme Maven a besoin de JDK pour compiler, vous devez l’ajouter.
Cela dans le fichier pom.xml et après la mise à jour du projet, le problème a disparu.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Mettez à jour le pom.xml sous <plugin></plugin>
.
Mettez à jour votre projet.
Ensuite, nettoyez et installez Maven.
La configuration de pom.xml ci-dessous assure le succès de la construction et veille à ce que la bibliothèque système JRE System du chemin de construction du projet pointe sur Java8.
org.Apache.maven.pluginsmaven-compiler-plugin3.7.0 1.81.8
Allez à l'emplacement du fichier où le POM est stocké et ouvrez cmd . Ensuite, tapez "mvn --v" pour vérifier la version maven et le runtime Java fourni . Vérifiez l'attribut d'exécution et s'il est "C:\Program Files\Java\jre1.8.0_191 "ou même proche d'un JRE, accédez aux variables d'environnement et ajoutez une nouvelle" variable système "appelée" Java_HOME "avec la valeur" C:\Program Files\Java\jdk1.8.0_191 ".
Rouvrez le cmd puis "installer à nouveau" le projet.
assurez-vous que le chemin principal Java est correct. dans mon cas, le chemin de départ Java est incorrect dans le fichier pom.
<properties>
<Java.home>/usr/Java/jdk1.8.0_45/bin/javac</Java.home>
</properties>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${Java.home}</executable>
<compilerVersion>1.8</compilerVersion>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Vous devriez ajouter le code dans pom.xml comme ceci:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>