¿Cuál es el equivalente del siguiente fragmento de código de una build.gradle en una versión build.gradle.kts?

repositories {
  mavenCentral()
  maven {
    url '<MAVEN REPO URL>'
  }
}
44
Florian Reisinger 13 ene. 2018 a las 20:31

3 respuestas

La mejor respuesta

Como una adición a las otras respuestas, en # kotlin-dsl / 256 métodos abreviados se agregaron a los diversos métodos de repositorio para hacer algo como lo siguiente:

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

Según el problema, esto se agregó en la versión DSL de Kotlin 0.11.1. Las versiones 0.11.x se incluyeron en la versión Gradle 4.2.

Para ver la versión de Gradle que está ejecutando con su compilación cuando usa Gradle wrapper ejecutar ./gradlew --version.

64
mkobit 14 ene. 2018 a las 15:33

El doco oficial le permite cambiar los ejemplos entre Groovy y DSL de Kotlin. Actualmente, la respuesta que figura allí para su pregunta es:

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

Necesitaba agregar Gitlab con autenticación, que tiene una sintaxis más complicada. Para otros que se topan con esto, aquí está el ejemplo oficial de Gitlab traducido a la sintaxis de 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")
    }
}

La URL de ejemplo aquí es verdadera para Gitlab doco. Pero para mí, solo funcionó con una URL como esta: https://gitlab.com/api/v4/projects/12345/packages/maven

1
Fletch 21 abr. 2020 a las 09:33

En 2018-01-13, la sintaxis correcta es la siguiente (en lugar de url, la función setUrl):

repositories {
    mavenCentral()
    maven {
        setUrl("<MAVEN REPO URL>")
    }
}
20
Nat 22 jul. 2018 a las 19:18
48242437