4

我想将快照构建从 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为文件名中的时间戳?

4

1 回答 1

4

您的问题很可能是您部署到的路径不被您选择的布局视为有效的集成修订版(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 路径时,它基本上只是在模仿模式。

于 2012-06-12T18:17:43.550 回答