2012-10-06 24 views
12

Soy un novato en Gradle y maravilloso en general, y estoy tratando de entender el siguiente ejemplo de la Gradle user guide, y sobre todo cómo he podido encontrar, en la documentación de DSL, donde todas estas opciones se pueden encontrados:entendimiento mavenDeployer de Gradle

uploadArchives { 
    repositories.mavenDeployer { 
     name = 'sshDeployer' // optional 
     configuration = configurations.deployerJars 
     repository(url: "scp://repos.mycompany.com/releases") { 
      authentication(userName: "me", password: "myPassword") 
     } 
    } 
} 

lo que entiendo:

  • uploadArchives es una tarea de tipo Upload, se añaden al proyecto por el plugin de Java
  • repositories es una propiedad de la tarea Upload, de tipo RepositoryHandler

Lo que no entiendo:

  • mavenDeployer no aparece en cualquier parte del documentation of RepositoryHandler. ¿De dónde viene? ¿Cómo se supone que debemos saber que existe ese método?
  • Buscando en el índice, encuentro que mavenDeployer es un método de MavenRepositoryHandlerConvention que se mezcla en el RepositoryHandler asociado a cada tarea de tipo Upload. Lástima que esto no se menciona en la documentación de RepositoryHandler y en la documentación de Subida.
  • Aunque podría ser más claro, entiendo que el cierre debe configurar un objeto del tipo GroovyMavenDeployer. Pero leyendo el javadoc, la propiedad repository por ejemplo es del tipo Object. ¿Cómo puedo saber que puedo configurarlo usando lo siguiente?

    repository(url: "scp://repos.mycompany.com/releases") { 
        authentication(userName: "me", password: "myPassword") 
    } 
    

Respuesta

6

documentación DSL Gradle no es especialmente amplia. No siempre es claro dónde se detiene la API pública y la impl privada comienza &. 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, the userguide + el código fuente es la mejor manera de navegar.

+0

¿Qué IDE usas? Intento hacer Cmd + clic en casi todas las palabras clave en gradle.build en IDEA, pero la mayoría de ellas no se resuelven, eventualmente esto se vuelve como caminar en la oscuridad. –

+0

Utilizo intellij, creo que la navegación/completa de código solo funciona si el proyecto se conoce como proyecto de gradle para intellij. Mi sistema de compilación utiliza el complemento de idea gradle en su lugar y, cuando está disponible una instalación gradle, agrega dependencias para vincular el proyecto a esa instalación local para proporcionar también acceso a código src. – Matt

+0

Incluso con este complemento muchas palabras clave no se resuelven. P.ej. con respecto a este hilo 'repositories.mavenDeployer' no se resuelve. No importa, espero que sea mejor;) –