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

问题描述 投票:0回答:5

以下来自

build.gradle
版本中的
build.gradle.kts
的代码片段相当于什么?

repositories {
  mavenCentral()
  maven {
    url '<MAVEN REPO URL>'
  }
}
gradle kotlin gradle-kotlin-dsl
5个回答
209
投票

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

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

根据问题,这是在 Kotlin DSL 版本中添加的

0.11.1
0.11.x
版本包含在 Gradle 4.2 版本中。

要查看使用 Gradle 包装器运行时构建的 Gradle 版本,请运行

./gradlew --version


63
投票

官方 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


30
投票

在 2018 年 1 月 13 日,正确的语法如下(不是

url
,而是函数
setUrl
):

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

16
投票

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

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

0
投票

为新项目添加maven url,您需要将其添加到settings.build.gradle.kts:

dependencyResolutionManagement {
    repositories {
        maven {
            url = uri("<MAVEN REPO URL>")
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.