使用 mavenDeployer 将存档上传到多个存储库

Posted

技术标签:

【中文标题】使用 mavenDeployer 将存档上传到多个存储库【英文标题】:uploadArchives with mavenDeployer to multiple repos 【发布时间】:2014-04-20 12:53:31 【问题描述】:

我有一个 gradle 项目,它的作用类似于其他两个项目的公共库。

另外两个项目各自托管一个嵌入式 maven 存储库,我希望将公共项目部署到该存储库。

我试过这个:

uploadArchives 
    repositories 
        mavenDeployer 
            repositories 
                repository(url: '../../../project-web-service/repo')
                repository(url: '../../../project-app/repo')
            
        
    

但这只会部署到第二个 repo。

我已经阅读了Configuring multiple upload repositories in Gradle build,但它没有涵盖 mavenDeployer,所以我现在有点卡住了。

【问题讨论】:

你需要声明另一个Upload任务。 或者上传到临时仓库然后复制到其他仓库位置?我将如何配置它? (你可能已经猜到了 gradle 的新手) 声明另一个Upload 任务是更好的方法。 (整个“嵌入式 Maven 存储库”方法对我来说听起来很臭,但这是另一个话题。) 那我该怎么做呢? 在Gradle Build Language Reference 中查看Upload 【参考方案1】:

您可以创建两个自己的任务(扩展自Upload),就像这样:

task uploadFirst(type: Upload) 
  uploadDescriptor = true
  repositories 
    mavenDeployer 
      repositories 
        repository(url: '../../../project-web-service/repo')
      
    
  


task uploadSecond(type: Upload) 
  uploadDescriptor = true
  repositories 
    mavenDeployer 
      repositories 
        repository(url: '../../../project-app/repo')
      
    
  

【讨论】:

【参考方案2】:

我遇到了同样的问题,只是能够通过提供额外的存储库名称来解决它,但仍然留下他们自己的 mavenDeployer 闭包。

你的例子:

uploadArchives 
    repositories 
        mavenDeployer 
            name = 'WebService'
            repository(url: '../../../project-web-service/repo')
        
        mavenDeployer 
            name = 'App'
            repository(url: '../../../project-app/repo')
        
    

【讨论】:

以上是关于使用 mavenDeployer 将存档上传到多个存储库的主要内容,如果未能解决你的问题,请参考以下文章

将存档上传到 App Store 时,Xcode 卡在“将媒体复制到包中”

无法将存档上传到 iTunesConnect

将应用程序上传到应用商店时,如何检查哪些文件是存档的一部分?

Zip然后将多个文件加密到单个存档中

构建中的多个配置文件-> TestFlight 的存档

将存档的应用程序上传到 iTunes Connect 时出现错误 ITMS-90085