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

Flo*_*ger 33 gradle kotlin gradle-kotlin-dsl

请告诉我从下面的代码片段相当于build.gradle一个build.gradle.kts版本?

repositories {
  mavenCentral()
  maven {
    url '<MAVEN REPO URL>'
  }
}
Run Code Online (Sandbox Code Playgroud)

mko*_*bit 44

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

repositories {
  mavenCentral()
  maven(url = "<MAVEN REPO URL>")
}
Run Code Online (Sandbox Code Playgroud)

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

使用Gradle包装器运行时,要查看Gradle版本,您正在运行构建./gradlew --version.


Fle*_*tch 21

官员DOCO允许你切换Groovy和DSL的科特林之间的例子。目前,您的问题的答案是:

repositories {
    mavenCentral()
    maven {
        url = uri("<MAVEN REPO URL>")
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要添加带有身份验证的 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")
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Flo*_*ger 13

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

repositories {
    mavenCentral()
    maven {
        setUrl("<MAVEN REPO URL>")
    }
}
Run Code Online (Sandbox Code Playgroud)


Sai*_*pta 11

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

repositories {
    maven {
        url = uri("<your-custom-url>")
    }
}
Run Code Online (Sandbox Code Playgroud)