54 votes

Maven est-il prêt pour JDK9 ?

Aujourd'hui, j'ai essayé le Dernière version de jdk9 Build 113 et a essayé de compiler mon projet avec la dernière version de Maven 3.3.9

Voici les commandes (partiellement trouvées) 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

Quelle est la configuration ou les paramètres maven à 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",...

0 votes

Il semble que Maven ait encore quelques problèmes. Vous pouvez essayer ce projet : github.com/forax/pro

39voto

Michael-O Points 6715

Voici la réponse d'un membre du PMC Maven (moi) :

Non, ce n'est pas le cas. Robert Scholte y travaille. Jigsaw et d'autres choses ont introduit beaucoup de changements. Il n'y a pas de calendrier officiel pour une compatibilité totale (Maven + plugins officiels).

Le problème que vous voyez n'est pas Maven mais Plexus Archiver. Référez-vous à leur page GitHub. Si vous pensez pouvoir apporter une valeur ajoutée, contactez la liste de diffusion maven-dev.

Documentation sur l'état d'avancement des travaux : https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw

3 votes

Ah, merci beaucoup ! Je pensais avoir lu quelque part que c'était déjà possible. Vous parlez de ce repo github ? github.com/codehaus-plexus/plexus-archiver/issues

1 votes

@Karussell Oui, c'est l'outil de suivi des problèmes. Vous pouvez également essayer comme plexus archiver snapshot manuellement.

16voto

King Nike Points 394

Oui, il est prêt maintenant. Il reste encore des choses à faire, mais il est généralement utilisable. A consulter un de mes projets à titre d'exemple.

2 votes

Le projet que vous avez partagé utilise des plugins de compilateur et de jar mais nous aurons d'autres plugins comme jlink, jmod, jdeps. De plus, le projet ne fournit pas d'exemples avec les modules automatiques et les modules sans nom. Je pense que l'équipe Maven y travaille encore.

0 votes

Pas sûr de ce que mais généralement utilisable signifie ici. Une réponse trop générique, je crois. L'idéal serait de suivre l'autre un par Michael est plutôt une source fiable.

0 votes

Le plugin M2E pour Eclipse ne semble pas prêt : stackoverflow.com/questions/47228377/

12voto

Karussell Points 7034

Mise à jour : devrait fonctionner sans cette solution de contournement.

Le problème est déjà corrigé par l'équipe de l'archiveur plexus, mais n'a pas encore été publié - merci à Michael-O de m'avoir indiqué le bon endroit :) !

Il existe maintenant une solution de contournement proposée par ctomc dans la rubrique PR 12 d'utiliser un vieil archiveur 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>

1voto

okwap Points 386

Le plugin Java doc a encore des problèmes dans la dernière version. (3.0.0.M1)

0voto

Afsanehr Points 1

J'ai eu le même problème et le dernier maven-javadoc-plugin qui a été publié récemment l'a résolu. J'ai mis à jour la dépendance dans le fichier pom en <version>3.0.0-M1</version>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X