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

Gradle函数定义自定义maven存储库?,gradle,groovy,Gradle,Groovy,我最终不得不在build.gradle文件中到处定义我的maven存储库。定义通常非常繁琐: repositories { jcenter() maven { url "https://mymavenurl/releases" credentials(Credentials) { username USERNAME password PASSWORD } } } 注意上面g

我最终不得不在
build.gradle
文件中到处定义我的maven存储库。定义通常非常繁琐:

repositories {
    jcenter()

    maven {
        url "https://mymavenurl/releases"
        credentials(Credentials) {
            username USERNAME
            password PASSWORD
        }
    }
}
注意上面gradle提供了一种定义常用maven存储库的好方法(即
jcenter()
)。我想在插件或父gradle脚本中找到一种方法,在函数中或静态地定义存储库,然后在
存储库
块中调用它:
myMavenRepo()

我缺乏groovy方面的知识,因此我不太了解解析groovy源代码所需的知识,我正在寻找一种很好的方法来实现这一点。我该怎么做


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

如果您在所有项目中使用这些存储库,您可以在。只需创建一个文件
$HOME/.gradle/init.gradle
,其中包含

allprojects {
    repositories {
        jcenter()

        maven {
            url "https://mymavenurl/releases"
            credentials(Credentials) {
                username USERNAME
                password PASSWORD
            }
        }
    }
} 

试着这样做:

repositories.ext.myRepo = {
    repositories.maven {
        url "https://mymavenurl/releases"
        credentials() {
            username USERNAME
            password PASSWORD
        }
    }
}
那么您应该能够拨打:

repositories {
    mavenCentral()
    myRepo()
}
buildscript存储库也可以做到这一点:

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

啊,我应该说明的。我不想将其添加到所有项目中。对我来说,它只适用于存储库,但不适用于buildscript.repositories。此操作:project.buildscript.repositories.ext.mavenMyPluginsRelease={project.buildscript.repositories.maven{。。。