【问题标题】:Gradle function to define custom maven repository?Gradle 函数来定义自定义 Maven 存储库?
【发布时间】:2016-11-02 20:51:15
【问题描述】:

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

repositories {
    jcenter()

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

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

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

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

【问题讨论】:

    标签: gradle groovy


    【解决方案1】:

    试试这样的:

    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 {...
    【解决方案2】:

    如果您在所有项目中使用这些存储库,您可以在 initialization script 中定义它们。只需创建一个包含

    的文件$HOME/.gradle/init.gradle
    allprojects {
        repositories {
            jcenter()
    
            maven {
                url "https://mymavenurl/releases"
                credentials(Credentials) {
                    username USERNAME
                    password PASSWORD
                }
            }
        }
    } 
    

    【讨论】:

    • 啊,我应该指定的。我不想将它添加到所有项目中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 2019-11-19
    • 2014-10-17
    • 2012-07-15
    • 2021-04-18
    • 2020-06-21
    相关资源
    最近更新 更多