无法将快照从Bamboo部署到Artifactory

时间:2012-06-12 14:22:12

标签: bamboo artifactory

我想将Bamboo中的快照构建部署到Artifactory。我的存储库的Handle Snapshots选项已经过检查,并且Maven Snapshot Version Behavior设置为Unique。存储库的布局为gradle-default

我的目标是在类似于以下位置部署工件的构建计划:

repo-local:com.company/project/1.0-SNAPSHOT/project-1.0-20120612.101600.txt

在Bamboo中,我有一个Artifactory Generic Deploy Task,为Edit Published Artifacts字段配置了以下内容:

project-1.0-SNAPSHOT.txt=>com.company/project/1.0-SNAPSHOT

然而,Artifactory拒绝我的构建工件,说The repository 'repo-local' rejected the artifact 'repo-local:com.company/project/1.0-SNAPSHOT/project-1.0-SNAPSHOT.txt' due to its snapshot/release handling policy.

如何让Artifactory接受工件并自动将SNAPSHOT替换为文件名中的时间戳?

1 个答案:

答案 0 :(得分:3)

您的问题很可能是您所选择的布局(gradle-default)不会将您部署的路径视为有效的集成修订。 gradle-default布局需要集成修订,如:

org/module/1.0-12345678912345/module-1.0-12345678912345.jar

即,在基础修订之后附加14位长的时间戳; 虽然您的路径包含 SNAPSHOT 而不是14位长的时间戳。

如果你想拥有像:

这样的模式
com.company/project/1.0-SNAPSHOT/project-1.0-20120612.101600.txt

您必须自定义布局以接受 -SNAPSHOT 作为文件夹集成修订,并修改工件以包含时间戳作为文件集成修订。

我猜你的假设是Artifactory会将非独特的整合修订版转换成一个独特的版本;仅当存储库设置为默认的Maven布局并且工件遵循Maven的布局时,Artifactory才会执行此转换。

这是因为Maven实际上已经定义了集成修订标准,Gradle没有这样的标准;所以基本上,Gradle修订版几乎可以是任何东西。

最重要的是,Gradle世界中并不存在唯一和非唯一集成修订的概念,它实际上没有任何内置功能来支持这些功能;所以当你在Gradle中看到一个Mavenized路径时,它基本上就是模仿这个模式。