【问题标题】:How to make a storm release from the source code?如何从源代码进行风暴发布?
【发布时间】:2014-04-28 20:20:20
【问题描述】:

我需要从 github 上的源代码创建最新的“版本”。但是遇到了麻烦。

这里是源代码:https://github.com/apache/incubator-storm
这是发布的样子:https://storm.incubator.apache.org/downloads.html

我的 maven 和 java 知识非常有限。
我试过这个: mvn release:prepare 但失败并出现此错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.1:prepare (default-cli) on project storm: Maven execution failed, exit code: '1' -> [Help 1]

pom.xml 未更改 https://github.com/apache/incubator-storm/blob/master/pom.xml

如果有人可以告诉我如何构建发布的步骤,那就太棒了。 谢谢。

##更新

mvn release:prepare -X

[INFO] [DEBUG] Generating signature for /home/bsmith/workspace/storm/incubator-storm/target/storm-0.9.2-incubating.pom
[INFO] gpg: no default secret key: secret key not available
[INFO] gpg: signing failed: secret key not available
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Reactor Summary:
[INFO] [INFO] 
[INFO] [INFO] Storm ............................................. FAILURE [4.032s]
[INFO] [INFO] maven-shade-clojure-transformer ................... SKIPPED
[INFO] [INFO] Storm Core ........................................ SKIPPED
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD FAILURE
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 4.907s
[INFO] [INFO] Finished at: Fri Mar 21 09:40:45 EDT 2014
[INFO] [INFO] Final Memory: 22M/291M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.4:sign (default) on project storm: Exit code: 2 -> [Help 1]
[INFO] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.4:sign (default) on project storm: Exit code: 2
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
[INFO]  at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
[INFO]  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
[INFO]  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
[INFO]  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
[INFO]  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
[INFO]  at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
[INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[INFO]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO]  at java.lang.reflect.Method.invoke(Method.java:606)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
[INFO]  at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[INFO] Caused by: org.apache.maven.plugin.MojoExecutionException: Exit code: 2
[INFO]  at org.apache.maven.plugin.gpg.GpgSigner.generateSignatureForArtifact(GpgSigner.java:254)
[INFO]  at org.apache.maven.plugin.gpg.GpgSignAttachedMojo.execute(GpgSignAttachedMojo.java:182)
[INFO]  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
[INFO]  ... 19 more
[INFO] [ERROR] 
[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] Reactor Summary:
[INFO] 
[INFO] Storm ............................................. FAILURE [7.220s]
[INFO] maven-shade-clojure-transformer ................... SKIPPED
[INFO] Storm Core ........................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.198s
[INFO] Finished at: Fri Mar 21 09:40:45 EDT 2014
[INFO] Final Memory: 9M/151M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.1:prepare (default-cli) on project storm: 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.4.1:prepare (default-cli) on project storm: 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.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    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.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
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)
    ... 19 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)
    ... 22 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:85)
    at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:81)
    ... 28 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

##更新#2

我尝试了第一个建议:

Fork the project (on Github), change the SCM section in the POM to use your own GitHub Fork (or change the SCM entry to some local repository)

在我 fork 一个 git repo 之后,我更新了 pom.xml 中的一个部分:

 <scm>
     <connection>scm:git:https://github.com/XXX/incubator-storm.git</connection>
     <developerConnection>scm:git:https://github.com/XXX/incubator-storm.git</developerConnection>
     <tag>v0.9.2-incubating</tag>
     <url>https://github.com/XXX/incubator-storm.git</url>
 </scm>

XXX 是我的用户名。

将新的 pom.xml 推送到 github
运行mvn release:prepare -DpushChanges=false -Dgpg.skip=true -X
并出现错误:

[INFO] [DEBUG] Generating signature for /home/bsmith/workspace/storm/incubator-storm/target/storm-0.9.0.2.pom
[INFO] gpg: no default secret key: secret key not available
[INFO] gpg: signing failed: secret key not available
...
...
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.4:sign (default) on project storm: Exit code: 2 -> [Help 1]
[INFO] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.4:sign (default) on project storm: Exit code: 2
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[INFO]  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

【问题讨论】:

  • 我真的帮不了你,但我可以告诉你,我曾经浪费了很多时间来构建另一个 apache 项目,因为我在错误的时间下载了最新的“版本”。该提交在 Maven 中有一些过时的路径,之后很快就得到了修复。所以..你可以先尝试构建一个较旧的稳定版本,如果发生同样的错误,至少你知道这不是他们最新配置中的一些错误。
  • 好点会试试看。
  • 这是整个日志消息吗?我的第一个猜测是 git 在类路径上不可用。 (GitHub目前已关闭,无法查看)。
  • @blackbuild 我已经克隆了存储库并尝试从我的计算机创建一个版本。是的,我可以点击这个链接,它会将我发送到 github 上的 repo
  • 啊,这就是问题所在。默认(发布)构建尝试签署您的工件。它不能这样做,因为您没有安装默认密钥。你可以试试-Dgpg.skip=true。但是,请参阅下面的答案。

标签: java maven release apache-storm


【解决方案1】:

您将无法使用 maven-release-plugin 进行发布。

为了成功,发布插件必须更改 GitHub 上的源代码,这是不允许的。

所以你有几个选择:

  • Fork 项目(在 Github 上),将 POM 中的 SCM 部分更改为使用您自己的 GitHub Fork(或将 SCM 条目更改为某个本地存储库)
  • 您可以使用 -DpushChanges=false 调用 maven:release,这会阻止将您的更改推送回 GitHub
  • 不要使用发布插件。使用maven-versions-plugin更改版本,运行mvn clean install(或部署,更改分发管理部分后),然后再次将版本更改为新的SNAPSHOT版本。

无论如何,请确保克隆版本(未发布)在您的计算机上干净地构建。

更新

尝试上面的第三个替代方案:

mvn version:set -DnewVersion=0.9.2-incubating-homebrew
git tag 0.9.2-incubating-homebrew (if you want)
mvn clean install/deploy
mvn version:set -DnewVersion=0.9.3-incubating-hombrew-SNAPSHOT
git push

如果 gpg 问题仍然存在,最简单的方法是删除完整的符号配置文件。

【讨论】:

  • 感谢您的建议,将尝试一下
  • 我已经尝试过你的建议,但是因为我没有使用 maven 和 apache 的经验,所以我坚持了一件事。我已经更新了我的答案,因为它对评论来说太大了。
  • 这些建议哪里有替代品,不要一起用。我将用最简单的解决方案更新我的答案
【解决方案2】:

如果你只是想制作一个发行版(就像你从 Apache 下载的那样),你可以在没有 maven 发布插件的情况下这样做。

首先,从源代码目录的根目录做一个maven构建(跳过测试会更快):

mvn clean install -DskipTests=true

然后创建二进制分布:

cd storm-dist/binary
mvn package

.zip.tar.gz 二进制存档将在 storm-dist/binary/target 子目录中创建。

【讨论】:

猜你喜欢
  • 2017-12-27
  • 1970-01-01
  • 2017-10-26
  • 2013-12-02
  • 2011-06-21
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多