it-roy-ru.com

Готов ли Maven к JDK9?

Сегодня я попробовал последний jdk9 Build 113 и попытался скомпилировать мой проект с последним Maven 3.3.9

Это команды (найдены частично через 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([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",...
51
Karussell

Да, это готово сейчас. Еще кое-что в процессе, но, как правило, пригодное для использования . Проверьте мой проект как пример.

16
King Nike

Вот ответ одного из членов Maven PMC (меня):

Нет. Роберт Шолте работает над этим. Jigsaw и другие вещи внесли много изменений. Официальных сроков, когда будет предоставлен полный компат (Maven + официальные плагины), не существует.

Проблема, которую вы видите, на самом деле не Maven, а Plexus Archiver. Обратитесь к их странице GitHub. Если вы думаете, что можете добавить ценность, свяжитесь со списком рассылки maven-dev.

Документация о ходе выполнения: https://cwiki.Apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw

37
Michael-O

Обновление: теперь должно работать без этого обходного пути.

Проблема уже исправлена ​​командой архиватора сплетения, но еще не выпущена - спасибо Michael-O за то, что указал мне на правильное место :)!

Теперь есть обходной путь, опубликованный 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>
11
Karussell

У плагина Java doc все еще есть проблемы в последней версии. (3.0.0.M1)

1
okwap

Я думаю, что 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>
1
Jobanpreet Singh

У меня была та же проблема, и последняя опубликованная версия maven-javadoc-plugin недавно исправила ее. Обновлена ​​зависимость в файле pom до <version>3.0.0-M1</version> 

0
Afsanehr