tutorial que proyecto programming pom partir para homepage español descargar crear comandos arquetipo archetype maven jenkins maven-plugin maven-archetype bitbucket-server

que - maven tutorial español



Hacer solicitudes HTTP durante el arquetipo de maven: generar (1)

Estoy construyendo un arquetipo para crear proyectos estandarizados dentro de la compañía. Los archivos de proyecto reales generados están bien, ahora me gustaría integrar el arquetipo con el proceso de configuración de la infraestructura, como repositorios de Stash y trabajos de Jenkins.

Por ejemplo, de manera simplista, me gustaría que el maven archetype:generate proceso para incluir un HTTP REST POST a http://stash.example.com/rest/api/1.0/projects/LABS/repos/{artifactId} para crear un repo de GIT.

Del mismo modo algo similar para los trabajos de construcción de Jenkins. Sería bueno si, antes de crear el proyecto maven, se pudieran hacer algunas pruebas a Stash / Jenkins para evitar colisiones de nombres.

Imagino que la solución a esto es unir algunos plugins maven a algunas fases de compilación.

No he podido encontrar complementos existentes, o ejemplos de personas haciendo similares durante una generación de arquetipo (sin el martillo Groovy).

  1. ¿Hay algún complemento Maven existente que ayude a realizar solicitudes HTTP / REST durante la compilación?
  2. ¿Hay algún complemento de Maven que ayude a acceder a las API de Stash o Jenkins?
  3. ¿Qué fases de Maven serían buenos candidatos para verificar nombres / id seleccionados contra sistemas remotos, y qué fases serían buenos candidatos para crear realmente los recursos remotos?

¿Alguien ha intentado este tipo de cosas, y si es así, cómo salió?

Veo algunas preguntas relacionadas

Y algunos complementos potenciales


Hay algunas maneras de hacerlo. Dos formas en que hicimos esto previamente fueron usando:

1. Usando groovy - gmaven plugin y RESTClient dentro de él

Nuestro código es un poco complicado de pegar aquí, pero hicimos algo muy similar a esto:

Groovy Rest Invocation utilizando Maven

2. El recurso de carga de Antcontrib:

Ejemplo:

<loadresource property="build_start_date"> <url url="${JOB_URL}/lastSuccessfulBuild/api/xml?xpath=/*/id/text()"/> </loadresource>

Esto se conecta a una api hudson rest y me envía la última fecha de compilación que se almacena en la propiedad build_start_date .