如何使用 kotlinscript DSL (build.gradle.kts) url 添加 Maven 存储库

How to add a maven repository by url using kotlinscript DSL (build.gradle.kts)

build.gradle.kts 版本中的 build.gradle 中的以下代码片段等效于什么?

repositories {
  mavenCentral()
  maven {
    url '<MAVEN REPO URL>'
  }
}

在 2018-01-13 正确的语法如下(而不是 url,函数 setUrl):

repositories {
    mavenCentral()
    maven {
        setUrl("<MAVEN REPO URL>")
    }
}

作为对其他答案的补充,在 #kotlin-dsl/256 中,快捷方法被添加到各种存储库方法中以执行如下操作:

repositories {
  mavenCentral()
  maven(url = "<MAVEN REPO URL>")
}

根据问题,这是在 Kotlin DSL 版本 0.11.1 中添加的。 0.11.x 版本包含在 Gradle 4.2 release.

要查看 Gradle 版本,您是 运行 使用 Gradle wrapper 运行 ./gradlew --version.

时的版本

official doco 允许您在 Groovy 和 Kotlin DSL 之间切换示例。目前您的问题的答案是:

repositories {
    mavenCentral()
    maven {
        url = uri("<MAVEN REPO URL>")
    }
}

我需要添加带身份验证的 Gitlab,它的语法更复杂。对于偶然发现这一点的其他人,这里是翻译成 kts/Kotlin 语法的官方 Gitlab 示例。

val gitLabPrivateToken: String by project

maven {
    url = uri("https://<gitlab-url>/api/v4/groups/<group>/-/packages/maven")
    name = "GitLab"
    credentials(HttpHeaderCredentials::class) {
        name = "Private-Token"
        value = gitLabPrivateToken
    }
    authentication {
        create<HttpHeaderAuthentication>("header")
    }
}

这里的例子URL适用于Gitlab doco。但对我来说,它只适用于 URL 这样的: https://gitlab.com/api/v4/projects/12345/packages/maven

您可以按照官方docs通过以下方式添加自定义Maven URL:

repositories {
    maven {
        url = uri("<your-custom-url>")
    }
}