java - maven-release-plugin 是否与 Java 9 兼容?

标签 java maven-3 maven-release-plugin java-9 maven-compiler-plugin

我刚刚尝试使用 maven-release-plugin 发布我的 Java 9 兼容项目。但是,它在 maven-compiler-plugin 中失败了

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project email: Fatal error compiling: invalid target release: 9

有趣的是,如果我独立运行它,maven-compiler-plugin 工作正常。 我的设置:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>9</source>
                <target>9</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
                <autoVersionSubmodules>true</autoVersionSubmodules>
                <tagNameFormat>v@{project.version}</tagNameFormat>
            </configuration>
        </plugin>

Maven 版本 3.5.0。

mvn clean install 工作正常;

mvn release:prepare release:perform -DignoreSnapshots=true 因上述异常而失败。

调试输出:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project blynk: Maven execution failed, exit code: '1' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project blynk: Maven execution failed, exit code: '1'
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.MojoExecutionException: Maven execution failed, exit code: '1'
    at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:290)
    at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:240)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 21 more
Caused by: org.apache.maven.shared.release.ReleaseExecutionException: Maven execution failed, exit code: '1'
    at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:91)
    at org.apache.maven.shared.release.phase.RunPrepareGoalsPhase.execute(RunPrepareGoalsPhase.java:44)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:234)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:169)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:146)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:107)
    at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:286)
    ... 24 more
Caused by: org.apache.maven.shared.release.exec.MavenExecutorException: Maven execution failed, exit code: '1'
    at org.apache.maven.shared.release.exec.InvokerMavenExecutor.executeGoals(InvokerMavenExecutor.java:433)
    at org.apache.maven.shared.release.exec.AbstractMavenExecutor.executeGoals(AbstractMavenExecutor.java:114)
    at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:85)
    ... 30 more

[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project email: Fatal error compiling: invalid target release: 9 -> [Help 1]
[INFO] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project email: Fatal error compiling
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[INFO]  at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[INFO]  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
[INFO]  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
[INFO]  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
[INFO]  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
[INFO]  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
[INFO]  at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
[INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[INFO]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO]  at java.lang.reflect.Method.invoke(Method.java:498)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[INFO] Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
[INFO]  at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1086)
[INFO]  at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:168)
[INFO]  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
[INFO]  ... 20 more
[INFO] Caused by: org.codehaus.plexus.compiler.CompilerException: invalid target release: 9
[INFO]  at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:173)
[INFO]  at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
[INFO]  at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1075)
[INFO]  ... 23 more
[INFO] Caused by: java.lang.IllegalArgumentException: invalid target release: 9
[INFO]  at com.sun.tools.javac.main.OptionHelper$GrumpyHelper.error(OptionHelper.java:103)
[INFO]  at com.sun.tools.javac.main.Option$12.process(Option.java:216)
[INFO]  at com.sun.tools.javac.api.JavacTool.processOptions(JavacTool.java:217)
[INFO]  at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:156)
[INFO]  at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:107)
[INFO]  at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:64)
[INFO]  at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125)
[INFO]  ... 25 more

最佳答案

根据Java+9+-+Jigsaw这是最近更新的,maven-release-plugin 不需要或不需要更改以与 JDK9 兼容。

此外,从问题中共享的日志来看,您案例中的输出似乎是由于配置错误的 Maven,Java 版本低于 9


虽然我遇到了类似的问题,但我注意到 Maven 在使用 sudo 执行时使用的 java 版本与通常在命令提示符下使用的版本不同。


要坚持 maven 使用的 java 的一致版本,请确保您配置了 mavenrc。你可以用类似的方式做到这一点:

vi ~/.mavenrc

然后保存内容如下:

export PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin

执行

mvn -version

并通过命令提示符intelliJ 终端确保其输出一致。

关于java - maven-release-plugin 是否与 Java 9 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504713/

相关文章:

java - HL7域接口(interface)的代码

java - 如何知道.jar文件目录

logging - 无法加载类 "org.slf4j.impl.StaticLoggerBinder"错误

hadoop - Spring-xd 容器(1.3.1) 与 Spark 1.6.1+ Hadoop 2.7.2 的兼容性

Maven:版本似乎影响 relativePath

hudson - 执行Maven发布;构建环境字段未出现在 Hudson 项目的配置中

java - TextView:淡出 + 阅读更多 - 单击展开

java - Java中一个Map包含另一个Map

maven-2 - 有没有办法覆盖版本 :prepare svn tag commit message?

maven - Maven 的最佳存储库管理