如何配置Gradle仅针对特定依赖组使用本地存储库?

19
根据gradle依赖文档,我们有一个build.gradle文件,其中包含以下示例代码。
repositories {
    mavenCentral()
    ivy {
        name = 'localRepo'
        artifactPattern "http://localRepo.com/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
    }
}

dependencies {
    compile group: 'localRepo', name: 'my-private-library', version: '2.5'
}

这个设置确实可以正确下载所有内容,但是我想调整它,使得在localRepo组中的东西只从ivy存储库尝试拉取,并且localRepo仅用于localRepo组。localRepo仅保存私有JAR文件,因此我们不希望将其用作第一个存储库,并且我们也不希望花费很长时间查询mavenCentral中不存在的JAR文件。

基本上,我想在依赖项中指定使用特定的存储库,或者仅将本地ivy存储库用于特定的组。有没有简单的方法可以做到这一点?


你可以在Gradle Nabble上提问,可能会得到更快、更好的回复:http://gradle.1045684.n5.nabble.com/ - c_maker
感谢你们两个的回答,artifactory 对我很有用,只是在赏金结束之前没有时间测试它。我选择了 sbridges 的答案,因为他先回答了。我还重新开放了赏金,以便你可以获得赏金积分。很抱歉我没有及时处理。 - Ransom Briggs
3个回答

5
并不完全符合您的要求,但是我们设置了本地私有仓库,以便开发人员从本地私有仓库获取所有依赖项,并且本地私有仓库缓存了Maven中央仓库。这种方式更快,因为只有第一个访问它们的开发人员从Maven中央仓库拉取一次依赖项,并且还允许您查看公司使用的已发布构件。Nexus和Artifactory以及其他所有仓库都支持此功能。请参考 Nexusartifactory

1

看起来类似的问题已经在Gradle邮件列表上提出,目前最好的选择确实是转向Artifactory并管理自己的共享存储库。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接