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

时间:2018-01-13 17:31:02

标签: gradle kotlin gradle-kotlin-dsl

相当于build.gradle版本中build.gradle.kts的以下代码段?

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

4 个答案:

答案 0 :(得分:24)

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

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

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

使用Gradle wrapper运行./gradlew --version时,要查看您使用构建版本运行的Gradle版本。

答案 1 :(得分:10)

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

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

答案 2 :(得分:8)

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

答案 3 :(得分:0)

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

key