今日、私は 最新のjdk9ビルド11 を試し、 my project を最新のMaven 3.3.9でコンパイルしようとしました
これらはコマンドです(部分的に 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
しかし、私は このエラー ...要するに:
[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
JDK9に使用する正しいMaven構成またはパラメーターは何ですか?
$ 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",...
はい、準備ができました。まだ進行中ですが、一般的には使用できます。 私のプロジェクト を例として確認してください。
Maven PMCメンバー(私)からの回答は次のとおりです。
いいえそうではありません。ロバート・ショルテはそれに取り組んでいます。ジグソーパズルなどの多くの変更が導入されました。完全な互換性(Maven +公式プラグイン)が提供される公式の時間枠はありません。
表示される問題は、実際にはMavenではなく、Plexus Archiverです。 GitHubページを参照してください。値を追加できると思う場合は、maven-devメーリングリストに連絡してください。
進行状況のドキュメント: https://cwiki.Apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw
更新:この回避策がなくても動作するはずです。
この問題はすでにplexusアーカイバチームによって修正されていますが、まだリリースされていません。Michael-Oが正しい場所を示してくれてありがとう:)!
PR 12 にctomcから投稿された回避策があり、古いplexusアーカイババージョン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の準備ができたと思います。私にとって、次のスニペットはJava 9を使用するようにmavenに伝えることができます。
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
同じ問題があり、最近公開された最新のmaven-javadoc-pluginで修正されました。 pomファイルの依存関係を<version>3.0.0-M1</version>
に更新しました