【问题标题】:Gradle upload a single archive to multiple repositoriesGradle 将单个存档上传到多个存储库
【发布时间】:2013-06-19 09:24:00
【问题描述】:

我的团队目前有两个 Maven 存储库,使用 Gradle 将工件上传到其中一个或另一个(取决于我们正在处理的项目)。其中一个回购是我们公司内部私有的,而另一个是我们和第三方公司都可以访问的回购。

现在,如果我们对项目进行更改,我们希望将新创建的工件上传到两个存储库,而不仅仅是一个存储库。但是我们发现编写如下代码并不能按预期工作:

uploadArchives {
    repositories {
        repository(url: "http://repo1/releases")
        snapshotRepository(url: "http://repo1/snapshot")
        repository(url: "http://repo2/releases")
        snapshotRepository(url: "http://repo2/snapshot")
    }
}

出于某种原因,Gradle 仅将存档上传到列表中的第二个存储库(即 repo2)。
我意识到虽然我们可以编辑 Gradle 文件以从多个存储库中下载,但我只是想知道是否真的可以将一个工件上传到多个,因为我们似乎无法做到让它发挥作用。

【问题讨论】:

  • 如果有帮助,我们正在使用 Gradle 1.3 版。

标签: maven gradle


【解决方案1】:

一个Upload 任务只能发布到一个存储库。但是,您可以声明另一个 Upload 任务。比如:

task uploadExternal(type: Upload) {
    configuration = configurations.archives
    uploadDescriptor = true
    repositories { ... }        
}

【讨论】:

  • 谢谢。这是 Gradle 的设计选择吗?就是想。 =)
  • 我最终使用了您的解决方案,即使用多个上传任务。但是我仍然对“一个上传任务只能发布到一个存储库”这句话感到好奇。这是真的? 1.名称暗示它的复数 2.我查看了 Upload.class 并且它有存储库列表 3.在 Gradle 文档本身中“在 Maven 中,您可以定义存储库和可选的快照存储库。如果没有定义快照存储库,则发布和快照都部署到存储库元素。否则,快照将部署到快照存储库元素。”。没有提到单个存储库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
  • 2015-04-24
  • 2018-03-11
  • 2013-01-24
  • 1970-01-01
  • 2015-04-22
  • 2020-08-01
相关资源
最近更新 更多