2016-04-12 75 views
43

今天我尝试了latest jdk9 Build 113并试图编译my project了最新的Maven 3.3.9Maven是否准备好JDK9?

这些命令(部分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 

但我得到this error ...总之:

[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 

什么是用于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",... 
+0

它看起来像Maven的还是有一些问题。你可能想尝试这个项目:https://github.com/forax/pro – user1735594

回答

15

是的,现在是准备好一个解决方法。还有一些事情正在进行中,但通常可用。 检查出a project of mine作为例子。

+1

您共享的项目使用编译器和jar插件,但我们将获得更多插件,如jlink,jmod,jdeps。该项目没有提供自动模块和未命名模块的示例。我认为Maven团队仍在努力。 –

+0

不知道什么.. *,但一般可用* ..这里的意思。我相信答案太笼统了。理想情况下,遵循其他[由迈克尔](https://stackoverflow.com/a/36584317/1746118),而不是一个可靠的来源。 – nullpointer

+0

Eclipse的M2E插件似乎没有准备好:https://stackoverflow.com/questions/47228377/how-to-use-maven-with-java9-0-1-and-pom-packaging-in-eclipse -oxygen-1a-release – Stefan

33

下面是一个Maven的PMC成员(我)答案:

不,事实并非如此。 Robert Scholte正在研究它。拼图和其他东西引入了很多变化。没有官方的时间表,完全compat(Maven +官方插件)将被给予。

您看到的问题实际上不是Maven,而是Plexus Archiver。请参阅他们的GitHub页面。如果您认为可以增加价值,请联系maven-dev邮件列表。

进展文档:https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw

+3

啊,非常感谢!我以为我在某处读过这已经是可能的了。你的意思是这个github回购? https://github.com/codehaus-plexus/plexus-archiver/issues – Karussell

+1

@Karussell是的,这是问题跟踪器。您也可以手动尝试作为丛存档快照。 –

10

更新:应该没有这种解决办法现在的工作。

这个问题已经从丛存档团队修复,但尚未发布 - 感谢迈克尔 - 奥指点我到正确的地方:)!

现在有在PR 12从ctomc发布使用旧丛存档版本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> 
0

我有同样的问题,最近发布的最新maven-javadoc插件修复了它。将pom文件中的依赖项更新为<version>3.0.0-M1</version>

1

Java doc插件在上一个版本中仍存在问题。 (3.0.0.M1)

+1

这并没有真正回答这个问题。如果您有不同的问题,可以通过单击[提问](https://stackoverflow.com/questions/ask)来提问。您也可以[添加赏金](https://stackoverflow.com/help/privileges/set-bounties)来更多地关注这个问题。 - [来自评论](/ review/low-quality-posts/17536661) – jeremycg

0

我认为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> 
+0

只是编译器插件更新不能证明maven的准备就绪,[answer](https://stackoverflow.com/a/36584317/1746118)一个完整的maven准备就绪的链接。答案也不涉及最初的问题错误。 – nullpointer

相关问题