groovy - migrar - Entendiendo mavenDeployer de Gradle
gradle publish (1)
Soy un novato en Gradle y Groovy en general, y trato de entender el siguiente ejemplo de la guía de usuario de Gradle , y especialmente cómo pude encontrar, en la documentación de DSL, donde se pueden encontrar todas estas opciones:
uploadArchives {
repositories.mavenDeployer {
name = ''sshDeployer'' // optional
configuration = configurations.deployerJars
repository(url: "scp://repos.mycompany.com/releases") {
authentication(userName: "me", password: "myPassword")
}
}
}
Lo que yo entiendo:
-
uploadArchives
es una tarea de tipoUpload
, agregada al proyecto por el plugin de Java -
repositories
es una propiedad de la tarea deUpload
, de tipoRepositoryHandler
Lo que no entiendo
-
mavenDeployer
no aparece en ninguna parte de la documentación de RepositoryHandler . ¿De dónde viene? ¿Cómo se supone que debemos saber que existe ese método? - Al buscar en el índice, encuentro que
mavenDeployer
es un método de MavenRepositoryHandlerConvention que se mezcla en RepositoryHandler asociado con cada tarea de tipo Upload. Lástima que esto no se menciona en la documentación deRepositoryHandler
ni en la documentación de Subida. Aunque podría ser más claro, entiendo que el cierre debe configurar un objeto de tipo
GroovyMavenDeployer
. Pero al leer el javadoc, la propiedad delrepository
, por ejemplo, es de tipoObject
. ¿Cómo puedo saber que puedo configurarlo usando lo siguiente?repository(url: "scp://repos.mycompany.com/releases") { authentication(userName: "me", password: "myPassword") }
La documentación de Gradle DSL no es especialmente completa. No siempre está claro dónde se detiene la API pública y comienza la impl. Privada y, a menudo, el código fuente es el único lugar para obtener una vista completa (por lo que generalmente es más fácil vincular el código src a mi IDE).
En su caso específico, la guía de usuario + el código fuente es la mejor manera de navegar.