¿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>'
}
}
3 respuestas
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
.
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
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>")
}
}
Preguntas relacionadas
Nuevas preguntas
gradle
Gradle es una herramienta de automatización de compilación de proyectos que utiliza un DSL Groovy. Los scripts de compilación Gradle son compatibles con los repositorios Maven e Ivy, así como con el sistema de archivos sin formato para la gestión de dependencias.