Aujourd'hui, j'ai essayé le dernier jdk9 Build 113 et essayé de compiler mon projet avec le dernier Maven 3.3.9
Ce sont les commandes (trouvées partiellement via Twitter )
export MVN_OPTS="-Dmaven.compiler.fork -Dmaven.compiler.executable=/somewhere/Downloads/jdk-9/bin/javac"
export Java_HOME="/somewhere/Downloads/jdk-9"
mvn clean install
Mais je reçois cette erreur ... en bref:
[WARNING] Error injecting: org.codehaus.plexus.archiver.jar.JarArchiver
Java.lang.ExceptionInInitializerError
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Java.base@9-ea/Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(Java.base@9-ea/NativeConstructorAccessorImpl.Java:62)
...
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)
Caused by: Java.lang.ArrayIndexOutOfBoundsException: 1
at org.codehaus.plexus.archiver.Zip.AbstractZipArchiver.<clinit>(AbstractZipArchiver.Java:116)
... 89 more
[WARNING] Error injecting: org.Apache.maven.plugin.jar.JarMojo
Java.lang.ExceptionInInitializerError
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Java.base@9-ea/Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(Java.base@9-ea/NativeConstructorAccessorImpl.Java:62)
...
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)
Caused by: Java.lang.ArrayIndexOutOfBoundsException: 1
at org.codehaus.plexus.archiver.Zip.AbstractZipArchiver.<clinit>(AbstractZipArchiver.Java:116)
... 89 more
Quel est la configuration ou les paramètres Maven corrects à utiliser pour JDK9?
$ mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
Maven home: /home/somewhere/Downloads/maven
Java version: 9-ea, vendor: Oracle Corporation
Java home: /home/somewhere/Downloads/jdk-9
Default locale: en_US, platform encoding: UTF-8
OS name: "linux",...
Oui, c'est prêt maintenant. Encore quelques choses en cours, mais généralement utilisables . Découvrez un de mes projets comme exemple.
Voici la réponse d'un membre de Maven PMC (moi):
Non ce n'est pas. Robert Scholte y travaille. Jigsaw et d'autres choses ont introduit beaucoup de changements. Il n'y a pas de calendrier officiel où la compatibilité complète (plugins officiels Maven +) sera indiquée.
Le problème que vous voyez n’est pas Maven mais Plexus Archiver. Reportez-vous à leur page GitHub. Si vous pensez pouvoir ajouter de la valeur, contactez la liste de diffusion maven-dev.
Documentation d'avancement: https://cwiki.Apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw
Mise à jour: devrait fonctionner sans cette solution de contournement maintenant.
Le problème est déjà résolu par l'équipe d'archivage du plexus, mais n'est pas encore publié - merci à Michael-O de m'avoir dirigé au bon endroit :)!
Maintenant, il existe une solution de contournement publiée par ctomc dans PR 12 pour utiliser un ancien archiveur de plexus version 2.4.4:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-Assembly-plugin</artifactId>
<version>2.4.1</version>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.4.4</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.4.4</version>
</dependency>
</dependencies>
</plugin>
Le plugin Java doc a toujours des problèmes dans la dernière version. (3.0.0.M1)
Je pense que maven est prêt maintenant, pour moi l'extrait suivant peut dire à maven d'utiliser Java 9
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
J'ai eu le même problème et le dernier plugin maven-javadoc qui a été publié récemment l'a corrigé. Mise à jour de la dépendance dans le fichier pom en <version>3.0.0-M1</version>