compiler - maven 3.3.9 download
¿Maven está listo para JDK9? (6)
Actualización: debería funcionar sin esta solución ahora.
El problema ya está solucionado por el equipo del archivador de plexos, pero aún no se ha publicado, ¡gracias a Michael-O por señalarme al lugar correcto :)!
Ahora hay una solución alternativa publicada desde ctomc en PR 12 para usar un antiguo archivador de plexo versión 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>
Hoy probé el último jdk9 Build 113 e intenté compilar mi proyecto con el último Maven 3.3.9
Estos son los comandos (encontrados parcialmente a través de 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
Pero me sale este error ... en resumen:
[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
¿Cuál es la configuración o los parámetros correctos de Maven para usar con 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",...
Aquí está la respuesta de un miembro de Maven PMC (yo):
No, no es. Robert Scholte está trabajando en ello. Rompecabezas y otras cosas introdujeron muchos cambios. No hay un marco de tiempo oficial en el que se proporcionará compatibilidad total (complementos oficiales de Maven +).
El problema que ves no es en realidad Maven sino Plexus Archiver. Consulte su página de GitHub. Si cree que puede agregar valor, comuníquese con la lista de correo de maven-dev.
Documentación de progreso: https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw
Creo que Maven está listo ahora, para mí el siguiente fragmento puede decirle a Maven que use 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>
El complemento de documentación de Java todavía tiene problemas en la última versión. (3.0.0.M1)
Sí, ya está listo. Todavía hay algunas cosas en progreso, pero generalmente utilizables. Mira un proyecto mío como ejemplo.
Tuve el mismo problema y el último plugin maven-javadoc que se publicó recientemente lo solucionó.
Se actualizó la dependencia en el archivo pom a
<version>3.0.0-M1</version>