什么是maven存储库镜像的gradle等价物?

Arm*_*and 14 gradle maven

使用Maven项目时,我喜欢为各种第三方存储库配置本地镜像(例如Artifactory).我通过settings.xml我的主目录中的文件执行此操作.

我找不到Gradle的类似设置 - 所有文档似乎建议添加一个新的存储库,而不是代理/镜像已经定义的repos的调用.这没有同样的效果.有没有一种简单的方法来代理Gradle中的远程Maven或Ivy存储库?

Ed *_*all 6

我们有一个内部 Artifactory 存储库,它配置了库和插件、发行版和快照版本的单独路径。相当于~/.m2/settings.xml我使用了以下~/.gradle/init.gradle文件:-

allprojects {
    buildscript {
        repositories {
            mavenLocal()
            maven { url "https://internal.example.com/artifactory/libs-releases" }
            maven { url "https://internal.example.com/artifactory/libs-snapshots" }
            maven { url "https://internal.example.com/artifactory/atlassian-cache" }
        }
    }

    repositories {
        mavenLocal()
        maven { url "https://internal.example.com/artifactory/plugins-releases" }
        maven { url "https://internal.example.com/artifactory/plugins-snapshots" }
        maven { url "https://internal.example.com/artifactory/atlassian-cache" }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • buildscript块指的是构建所使用的 gradle 插件的搜索位置。
  • 第二个repositories块是指项目依赖项的搜索位置。
  • mavenLocal()指本地文件系统存储库~/.m2/repository

更多信息:


Amn*_*non 5

您可以定义一个自定义存储库,例如:

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

如果要在项目之间共享此定义,请将其移至init脚本

  • 这是真的!但OP指的是透明镜像存储库(例如第三方依赖项),而不是为每个项目修改“build.gradle”。 (3认同)
  • 此[link](https://rahulsom.github.io/blog/2016/gradle-equivalent-of-maven-mirror.html)也很有帮助。 (3认同)
  • 将存储库声明放入“USER_HOME/.gradle/”目录或“GRADLE_HOME/init.d/”中名为“init.gradle”的文件中,相当于使用 Maven 和“settings.xml”的 Gradle。这是OP所指的吗? (2认同)