【发布时间】:2014-10-31 04:07:08
【问题描述】:
我还是 Gradle 和 Nexus 的新手。
我希望能够使用 Gradle 从托管的 nexus 存储库中删除工件。使用 nexus GUI 来执行此操作不是一种选择,因为我不想。
希望这样做的部分原因是能够自动更正上传错误,例如错误标记的工件,或使用错误版本上传的工件。我也可能只是想清除整个项目及其所有版本(可能是因为它上传到了错误的仓库,或者我只是在做一些房屋清洁工作。或者我想覆盖当前上传的版本一个神器。无论如何,我现在没有真正的用例,但我仍然想知道如何去做。
编辑:另外,我很好奇在某个工件版本已经上传时如何“优雅地”处理时间,例如捕获特定异常并输出用户友好消息以建议开发人员在之前更新构建版本正在上传。
这是我当前的 uploadArtifact 任务。
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
mavenDeployer {
credentials {
username "user"
password "password"
}
url "http://localhost:8081/nexus/content/repositories/releases/"
}
}
}
【问题讨论】:
-
您必须使用 Groovy(Gradle 中的一等公民)在 Nexus 中执行任何操作。与 Nexus 类似,我们有 Artifactory,我使用 REST API 方法从 Artifactory 存储库中删除工件。你可以稍微调整一下代码来为 Nexus 做同样的事情。见这里:stackoverflow.com/questions/18861950/… 我的脚本也使用 REST API 从 Jenkins 中删除一些旧版本(REST API 方式),但你可以忽略那部分