如何使用带有Gradle的Sonatype Nexus来代理销售代理?

Lór*_*tér 13 gradle

假设我在内部服务器上运行Sonatype Nexus,我想用它来代理repo1.maven.org和其他存储库.在Maven中我只想添加一个<mirror>配置settings.xml.我怎么能用Gradle做到这一点?

更新:我想这样做,而不必将我的Nexus实例的URL硬编码到我拥有的每个项目中.所以我正在寻找Maven <mirror>设置的精确复制品.

我现在能想出的最好的事情就是这样做:

repositories {
    maven {
        url "$nexusUrl/content/groups/public"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后~/.gradle/gradle.properties在每个开发人员的计算机上都有这个:

nexusUrl = https://nexus.company.com
Run Code Online (Sandbox Code Playgroud)

但是,这看起来很黑,我仍然需要为每个项目添加5行.有没有更优雅的方式来做到这一点?

小智 14

Init脚本可能是最好的方法.请阅读" 用户指南"中的本章.

它们为您提供了一种将逻辑注入所有项目的方法.


JB *_*zet 7

文档init脚本中所述:

创建以.gradleeg:结尾的文件夹和文件~/.gradle/init.d/mirror.gradle.内容:

initscript {
  repositories {
     maven {
        url "http://repo.mycompany.com/maven2"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)