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

用于定义自定义存储库(Kotlin)的Gradle函数,gradle,kotlin,Gradle,Kotlin,如中所述,我想为repositories块定义命名函数。他们应该配置公共(但企业内部)存储库 我们有一个自定义的gradle分布,这些函数应该通过定义 尽管上述问题中的代码适用于groovy脚本,但它不适用于*.gradle.kts 我希望能够使用,它们在初始化脚本中工作得非常好: // init.d/repositories.gradle.kts fun RepositoryHandler.buildRepo() { maven { url = java.net.U

如中所述,我想为repositories块定义命名函数。他们应该配置公共(但企业内部)存储库

我们有一个自定义的gradle分布,这些函数应该通过定义

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

我希望能够使用,它们在初始化脚本中工作得非常好:

// 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
我希望有人知道如何解决这个问题