Ответ 1
Да, теперь он готов. Еще кое-что происходит, но в целом можно использовать. В качестве примера рассмотрим проект моего.
Сегодня я попробовал последний jdk9 Build 113 и попытался скомпилировать мой проект с последним Maven 3.3.9
Это команды (найдены частично через твиттер)
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
Но я получаю эту ошибку... короче:
[WARNING] Error injecting: org.codehaus.plexus.archiver.jar.JarArchiver
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0([email protected]/Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance([email protected]/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([email protected]/Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance([email protected]/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
Какова правильная конфигурация или параметры maven для 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",...
Да, теперь он готов. Еще кое-что происходит, но в целом можно использовать. В качестве примера рассмотрим проект моего.
Вот ответ от одного члена PMC Maven (меня):
Нет, это не так. Роберт Шёльте работает над этим. Jigsaw и другие вещи ввели много изменений. Официальных таймфреймов, где будет предоставлена полная совместимость (официальные плагины Maven +).
Проблема, которую вы видите, на самом деле не Maven, а Plexus Archiver. Обратитесь к странице GitHub. Если вы считаете, что можете добавить значение, обратитесь в список рассылки maven-dev.
Документация о проделанной работе: https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw
Обновление: должно работать без этого обхода.
Проблема уже исправлена из команды архитекторов сплетений, но еще не выпущена - спасибо Майклу-О за то, что он указал мне в нужное место:)!
Теперь есть утилита, отправленная ctomc в PR 12 для использования старой версии архиватора сплетения версии 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>
Плагин Java doc по-прежнему имеет проблемы в последней версии. (3.0.0.M1)
У меня была такая же проблема, и последний опубликованный недавно maven-javadoc-плагин исправил это. Обновлена зависимость в файле pom до <version>3.0.0-M1</version>
Я думаю, что maven теперь готов, для меня следующий фрагмент может сказать maven использовать 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>