这个错误快让我发疯了。有人能帮帮我吗?我确实安装了gpg,它也在PATH中。是什么导致这个错误!!
我在jenkins 1.5, maven 3.0.3 linux和windows上运行这个作业(都显示相同的错误)
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project sample: Exit code: 2 -> [Help 1]
[INFO] [ERROR]
[INFO] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[INFO] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[INFO] [ERROR]
[INFO] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[INFO] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4:53.571s
[INFO] Finished at: Fri Aug 14 14:00:36 PDT 2015
[INFO] Final Memory: 21M/620M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving /var/lib/jenkins/jobs/sample/workspace/pom.xml to /var/lib/jenkins/jobs/sample/modules/com.sample$sample/builds/2015-08-14_13-55-35/archive/com.sample/sample/1.0.0-SNAPSHOT/sample-1.0.0-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5:prepare (default-cli) on project sample: Maven execution failed, exit code: '1'
cause : Maven execution failed, exit code: '1'
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5:prepare (default-cli) on project sample: Maven execution failed, exit code: '1'
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.maven.plugin.MojoExecutionException: Maven execution failed, exit code: '1'
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:281)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:232)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 26 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:89)
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:277)
... 29 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:394)
at org.apache.maven.shared.release.exec.AbstractMavenExecutor.executeGoals(AbstractMavenExecutor.java:110)
at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:81)
... 35 more
channel stopped
Archiving artifacts
An attempt to send an e-mail to empty list of recipients, ignored.
Finished: FAILURE
如果您不需要您的工件被签名,您可以禁用或跳过父pom中定义的gpg插件的执行
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
或使用gpg.skip=true
运行构建(参见Maven GPG Plugin)
如果您需要您的工件被签名,您应该检查父pom中的gpg-plugin的配置,或者覆盖您的pom中的配置。也许父文件中的某些设置与您的系统环境不匹配,但从错误信息中很难判断。
我在夜间jenkins构建中从Ubuntu 16升级到Ubuntu 18.04 LTS后发生了这个问题。
gpg --version
gpg (GnuPG) 2.2.4
首先我用
检查了非jenkins环境中的相同项目mvn install
and I got the message
gpg: signing failed: Inappropriate ioctl for device
指向
https://github.com/keybase/keybase-issues/issues/2798和
https://tutorials.technology/solved_errors/21-gpg-signing-failed-Inappropriate-ioctl-for-device.htmlexport GPG_TTY=$(tty)
是推荐的补救措施。我已经将它添加到我的.profile中,并重新启动
mvn install
测试。这一次我被要求通过终端输入OpenPGP密钥的密码。通过命令行第二次运行成功,没有输入密钥。
然后我停止并重新启动jenkins并再次尝试失败的工作。这次成功了。
不幸的是,它仍然不能在jenkins jobx中工作,其中xsession是启动的。http://maven.apache.org/plugins/maven-gpg-plugin/usage.html显式声明可以将gpg。我已经有效地使用了很长时间的settings.xml中的密码短语。我知道我不知道如何恢复这种行为,我只能提供上面的解决方案。
见也使用Maven发布插件
这意味着您需要一个密钥来对jar进行签名。按照这个过程直到最后一步(显然你不需要把它复制到github)
总结:
- 打开Git Bash
-
gpg --gen-key
#使用默认值4096作为密钥大小 -
gpg --list-secret-keys --keyid-format LONG
- (可选)
gpg --armor --export %the key from above%