Как добавить репозиторий maven по URL, используя kotlinscript DSL (build.gradle.kts)
Что эквивалентно следующему фрагменту кода из build.gradle
в build.gradle.kts
версия?
repositories {
mavenCentral()
maven {
url '<MAVEN REPO URL>'
}
}
2 ответа
В дополнение к другим ответам, в #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
,
Официальный DOCO позволяет переключать примеры между Groovy и DSL, Котлин. В настоящее время там указан ответ на ваш вопрос:
repositories {
mavenCentral()
maven {
url = uri("<MAVEN REPO URL>")
}
}
Мне нужно было добавить Gitlab с аутентификацией, который имеет более сложный синтаксис. Для других, кто наткнется на это, вот официальный пример Gitlab, переведенный на синтаксис kts/Kotlin.
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
На 2018-01-13 правильный синтаксис следующий (вместо url
, функция setUrl
):
repositories {
mavenCentral()
maven {
setUrl("<MAVEN REPO URL>")
}
}
Вы можете добавить собственный URL-адрес Maven следующим образом в соответствии с официальными документами:
repositories {
maven {
url = uri("<your-custom-url>")
}
}