0

nexus我们有一个项目,我在其中使用ant和将工件上传到存储库ivy。事情进展顺利很长一段时间,但现在我们必须部署两次相同的工件(因为我们正在为 windows 和 mac 生成相同的产品)。应用程序的代码是一样的,只是改变了包装。我已将部署过程配置为使用 Maven 分类器。问题是上传是从 2 台不同的机器完成的,因为每台机器都有适合目标平台的构建环境。

所以,第一次部署是正确的,它上传:

  • myproduct-1.0.pom
  • myproduct-1.0-mac.zip

当我尝试部署 Windows 工件时,将部署

  • myproduct-1.0.pom
  • myproduct-1.0-win32.msi

它失败是因为存储库策略不允许重新部署(并且应该保持这种方式),因此即使 pom 内容相同,尝试为相同的工件和版本部署新的 pom 文件也会失败。

此外,将来我们可能会遇到类似的问题,即在不同的机器上部署相同产品和版本但不同分类器的各种工件,但在不同的构建过程中。

如果在使用 pom 部署分类工件时,如果存储库中已存在相同的 pom 文件不会失败,是否可以告诉 nexus 不会失败?如果不可能,我知道使用不同分类器部署各种工件的唯一方法是同时部署它们。这是真的吗?

4

1 回答 1

1

最后,我创建了一个任务,只部署了没有任何分类器的 pom,并将 windows 和 mac 工件的部署修改为只部署包而不部署 pom:

  1. 部署没有分类器的 pom
  2. 使用分类器 (mac) 部署 mac 工件
  3. 使用分类器部署 win artficat (win32)

当我认为我会抱怨时,Nexus 在部署工件而不部署 pom 文件时不会抱怨。

我觉得这是一个肮脏的把戏,但它有效:)

于 2013-02-14T10:22:20.953 回答