Как добавить репозиторий 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>")
    }
}
Другие вопросы по тегам