用于定义自定义存储库的Gradle函数(Kotlin)

时间:2019-07-26 21:00:04

标签: gradle kotlin

正如Gradle function to define custom maven repository?中已问过的那样,我想为存储库块定义命名函数。他们应该配置通用(但企业内部)存储库。

我们有一个自定义的gradle分发版,其中应通过init.d script定义这些功能。

尽管上述问题中的代码适用于常规脚本,但不适用于*.gradle.kts

我希望能够使用Kotlin extensions,并且它们在初始化脚本中可以很好地工作:

// init.d/repositories.gradle.kts

fun RepositoryHandler.buildRepo() {
    maven {
        url =  java.net.URI(System.getenv("MAVEN_BUILD_REPO_URL"))
        credentials {
            username = System.getenv("MAVEN_BUILD_REPO_URL")
            password = System.getenv("MAVEN_BUILD_REPO_URL")
        }
    }
}

allprojects {
    repositories {
        buildRepo()
    }
}

不幸的是,一旦尝试在实际项目构建文件中使用这些扩展名,这些扩展名就会消失:

repositories {
    buildRepo()
}

对于build.gradle文件,错误是:

Could not find method buildRepo() for arguments [] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.

对于build.gradle.kts,它是编译失败:

Script compilation error:

  Line 3:     buildRepo()
              ^ Unresolved reference: buildRepo

我希望有人对如何解决这个问题有所了解。

0 个答案:

没有答案