Gradle函数定义自定义maven存储库?

spi*_*ce7 2 groovy gradle

我最终必须在我的build.gradle文件中定义我的maven存储库.定义通常非常麻烦:

repositories {
    jcenter()

    maven {
        url "https://mymavenurl/releases"
        credentials(Credentials) {
            username USERNAME
            password PASSWORD
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意上面gradle如何提供一种定义常用maven存储库的好方法(即jcenter()).我想在插件或父gradle脚本中使用一种方法在函数中定义存储库,或者静态地定义存储库,然后在repositories块内调用它:myMavenRepo().

我对groovy的知识缺乏,所以我不太理解我需要解析我所看到的常常来源,找到一个很好的方法来做到这一点.我该怎么做?

我知道在父gradle文件中,我可以使用allProjectssubProjects.我不想将这些maven存储库添加到所有模块,而只是添加特定的模块.

Krz*_*sik 5

尝试这样的事情:

repositories.ext.myRepo = {
    repositories.maven {
        url "https://mymavenurl/releases"
        credentials() {
            username USERNAME
            password PASSWORD
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你应该可以打电话:

repositories {
    mavenCentral()
    myRepo()
}
Run Code Online (Sandbox Code Playgroud)

对于buildscript存储库也可以实现相同的目的:

buildscript.repositories.ext.myRepo = {
    buildscript.repositories.maven {
        url "https://mymavenurl/releases"
        credentials() {
            username USERNAME
            password PASSWORD
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这有效:project.buildscript.repositories.ext.mavenMyPluginsRelease = {project.buildscript.repositories.maven {... (2认同)