Maven готов к JDK9?
сегодня я попробовал последняя сборка jdk9 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(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
какова правильная конфигурация или параметры 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",...
6 ответов:
Да, он уже готов. Еще кое-что происходит, но в целом можно использовать. Проверьте мой проект как пример.
вот ответ от одного члена Maven PMC (me):
нет, это не так. Роберт Шолте работает над этим. Jigsaw и другие вещи внесли много изменений. Нет никаких официальных временных рамок, где будет дан полный compat (Maven + официальные Плагины).
проблема, которую вы видите, на самом деле не Maven, а Plexus Archiver. Обратитесь к их странице GitHub. Если вы считаете, что можете добавить ценность, свяжитесь со списком рассылки maven-dev.
документация о ходе выполнения: https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+лобзик
обновление: должно работать без этого обходного пути сейчас.
проблема уже исправлена из команды Plexus archiver, но еще не выпущена-спасибо Michael-O за указание мне на нужное место :)!
теперь есть обходной путь, отправленный из ctomc в пр 12 для использования старого plexus archiver версии 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>
У меня была такая же проблема, и последний 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>
Comments