使用 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 卡在“将媒体复制到包中”