【问题标题】:Maven - release:prepare without committingMaven - 发布:准备而不提交
【发布时间】:2012-10-18 15:21:30
【问题描述】:

我希望在不提交的情况下发布一个独立的补丁。当我为某个版本准备发布时,我收到以下错误:[ERROR] fatal: Not a git repository (or any of the parent directories): .git

我可以不提交就释放吗?

目前,我正在做的是在本地生成一个 jar 并手动将其作为工件上传。

【问题讨论】:

  • 顺便说一句,我在尝试提交时遇到了同样的错误(与您的意图相反,我确实想提交并推送到远程 git)。在我的情况下,该错误是由于插件中的错误引起的(至少,org.apache.maven.plugins:maven-release-plugin:2.0.0),它试图 cd 到本地目录之外git 回购。我已将问题设置插件版本明确修复为版本 2.5.1。

标签: maven release


【解决方案1】:

我对 mercurial 也有同样的问题。您需要使用 -DpushChanges=false 参数。

查看我对类似问题的回答:link

【讨论】:

  • 这仍然会在不推送的情况下进行提交,因此您必须将本地分支重置为预先准备好的状态。有什么办法可以解决吗?
  • 如果你用 git 做批处理,你可以添加这些命令:git reset HEAD~2 --hard && git clean
【解决方案2】:

如果您不想向 SCM 提交任何内容,我认为您应该尝试向 dry run 提交任何内容:

由于发布插件执行了许多更改项目的操作,因此在大发布之前或在新项目上进行试运行可能是明智的。为此,请提交所有文件,就像您即将运行完整版本一样,然后运行:
mvn release:prepare -DdryRun=true

这是发布的参数:prepare Mojo : dryRun

【讨论】:

  • 谢谢,这不是我想我会找到的,但它肯定足够接近:)
  • 您可以在此之后做一个release:perform 来发布而不提交任何更改吗?
  • 文档 (maven.apache.org/maven-release/maven-release-plugin/…) 说:试运行:不要从 scm 存储库中检出任何内容,或修改检出。目标(默认至少部署)不会被执行。
  • 目标参考maven.apache.org/maven-release/maven-release-plugin/…。所以我想在存储库上不会部署(分发)任何东西。
  • 如果您的要求是它也推送到工件存储库,这不起作用。
猜你喜欢
  • 2012-10-02
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多