使用Snapshot策略部署nexus工件,但版本中没有SNAPSHOT字符串

时间:2012-11-27 17:59:28

标签: maven deployment jenkins nexus snapshot

显然我的Nexus拒绝我向他扔的每一个部署,如果该工件在版本中没有-SNAPSHOT。

数据:

  • 失败工件的名称:entando-core-engine-experiment-bundles_with_bootstrap.jar其中 experiment-bundles_with_bootstrap 是版本,如pom.xml的version元素
  • 在我的Nexus上托管存储库策略:快照,允许重新部署等(快照的经典conf)
  • 部署员:Jenkins 1.481
  • 同样的Jenkins工作,但是entando-core-engine- SNAPSHOT .jar ---> SUCCESS

我需要这个命名约定,因为我正在构建我们内部运行的几个实验之一,与规范开发分支相反,它生成一个正确的entando-core-engine-SNAPSHOT.jar

有什么建议吗? 我完全迷失了。

2 个答案:

答案 0 :(得分:2)

通常情况下,您的Nexus配置为不允许重新部署版本。 Maven的观点是一个神器,它的版本不是 -SNAPSHOT 。相反,SNAPSHOT打算多次部署到nexus中 这听起来好像你没有使用Maven的发布插件和Jenkins的Release PLugin。

答案 1 :(得分:0)

Nexus是一个使用不同存储库格式的存储库管理器,主要格式是Maven存储库格式。无法更改服务器上工件的名称,因为它违反了格式。它们必须位于由groupId,artifactId和version建立的目录结构中,并使用artifactId-version-classifier.packaging作为文件名。

如果您需要在服务器上使用不同的文件名,则必须查看不同的存储库格式(不好主意)。如果您需要客户端上的文件名,只需从正确的名称下载并重命名..