【问题标题】:Maven ssh deployment overrides artifacts in nexus - Can this be prevented?Maven ssh 部署覆盖 nexus 中的工件 - 可以防止这种情况吗?
【发布时间】:2015-05-19 09:31:12
【问题描述】:

我们正在使用 Maven Wagon SSH 和 Wagon SSH External 插件部署到我们的 nexus 存储库。这样,可以覆盖连接中的工件。

有没有办法在 Maven 方面防止这种情况?还是我们必须更改工件的 wagon 或文件系统权限?

【问题讨论】:

  • 你为什么使用SSH?我假设您在 Nexus 上使用文件系统级别的 ssh。 SSH 不是将工件上传到 Nexus 的方式。使用默认 http(s) 上传工件,您可以控制覆盖现有的工件(版本)。

标签: maven nexus maven-deploy-plugin maven-wagon-plugin


【解决方案1】:

我建议您使用deploy 命令或使用maven-release-plugin。使用该插件,您可以 prepare 您的 pom.xml 到下一个版本,它会将这些更改提交到您的版本控制(git,svn)。然后您可以运行perform 命令来构建准备好的版本并将其部署到nexus。

关键是您可以根据需要重新deploy 您的工作快照版本(以 -SNAPSHOT 结尾)。但是你可以deploy版本没有快照一次。这样可以确保您不会以这种方式覆盖发布版本!

问题是您必须手动更新您的版本,否则您将使用提到的插件。

【讨论】:

  • 通过“部署命令”你是指部署插件吗?通过 maven-release-plugin 部署不会也使用 maven deploy 插件吗?
  • 是的,我的意思是标准的部署命令,它可能由 maven-deploy-plugin 提供。是的,perform 操作将使用来自另一个插件的deploy 命令。基本上,发布插件管理你 pom.xml 的版本,当你有更大的子模块项目时,手动维护它变得更加困难。
  • 然后部署插件使用 maven wagon。所以我们实际上是在使用 deploy-plugin。问题是,您可以随心所欲地部署没有快照的版本。
  • 我不认为这回答了使用 ssh 进行 maven 部署时限制重新部署的原始问题。我也面临同样的问题,即 ssh 也能够重新部署发布版本,这是一个相当大的风险。
猜你喜欢
  • 2011-09-21
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多