Estoy usando Jenkins para construir Maven proyectos Java y de implementar en un Nexus repositorio. Yo también uso Git, aunque yo estoy más acostumbrado a la Subversión, así que mi conocimiento de Git es limitado.

Me gustaría Jenkins/Maven:

  1. Característica de combinación de la rama en la integración de la rama
  2. Construir código combinados, ejecutar pruebas unitarias
  3. Si pasan, incremento de Maven número de versión
  4. Empuje combinado de código de origen de la integración de la rama
  5. Implementar artefacto para Nexus repositorio

Deduzco que el Git fusión puede ser logrado por lo tanto: http://twasink.net/2011/09/20/git-feature-branches-and-jenkins-or-how-i-learned-to-stop-worrying-about-broken-builds/

También he leído mucho sobre el maven-release-plugin.

No estoy seguro de cómo exactamente para lograr los resultados anteriores. Si me codificar SCM detalles en cada proyecto POM, entonces no la maven-release-plugin actuando sólo en que repositorio en lugar de Jenkins local?

Si puedo usar una solución de tener Jenkins pasar una variable de entorno para Maven para especificar el número de versión, luego me iba a esperar a tener la versión local de la resolución de los problemas en mi IDE.

Consulte maven plugin de la versión mvn versions:use-next-releases o mvn versions:set -DnewVersion=x.y.z
Hola, he intentado mvn versiones:set-DnewVersion=x.y.z pero cuando el artefacto que se ha implementado para Nexus todavía parece tener la versión anterior número establecido, aunque se me puede ver en los registros que la variable que se pasa a través de Maven.
Bien, porque usted empuje de las fuentes originales (antes de la compilación). Usted tiene que empujar fuentes de jenkins área de trabajo …

OriginalEl autor EngineerBetter_DJ | 2012-03-21

1 Comentario

  1. 8

    OK, esta es una muy difícil de hacer. Pero es factible. Permítanme explicar la idea paso por paso.

    1. Primero tenemos que unir las dos ramas juntos. Esto es bastante fácil de hacer con Jenkins plugin de Git, como este función incorporada: de Mezcla antes de construir opción está disponible en Avanzado de la sección de configuración del proyecto.

    2. Así que nos dieron el código combinado entre esas dos ramas, podemos pasar a la construcción del proyecto de negocio como de costumbre, Maven estilo Jenkins proyecto.

    3. Ahora necesitamos incrementar la versión del proyecto y de los módulos, el commit de la rama fusionada y empuje de los artefactos en el repositorio. Y aquí tenemos dos opciones para ir con:

      1. Uso de maven-release-plugin para el trabajo. Sí, es posible, como nadie dijo que usted tendrá que poner la Url de tu pom, como puede ser en dos maneras diferentes. El plugin utilizará uno siempre con el modificador de línea de comandos -DconnectionUrl=. Y si no se proporciona, se compruebe la liberación.archivo de propiedades para obtener a partir de allí. La última reserva es para ir a la pom.xml ang obtener ${project.scm.connection} variable. Así que usted puede utilizar fácilmente el plugin para hacer todo el trabajo sucio sin ningún tipo de molestias e introducir este establecimiento mediante diferentes técnicas proporcionadas por Jenkins.
      2. Puede utilizar una combinación de maven-versiones-plugin(en concreto versiones:conjunto de y versiones:cometer metas) con maven-scm-plugin para hacer el etiquetado y confirmar los cambios.

      En ambos casos se puede utilizar la Post Pasos con Ejecutar sólo si logra construir opción e invocar el nivel superior de Maven de destino como de costumbre. Para todos los valores anteriormente mencionados o descritos por el plugin en particular hay una opción para proporcionar fácilmente en un campo de texto.
      Para subir sus artefactos para el Nexus repo me gustaría ir con Jenkins construir en función a Implementar artefactos para el repositorio de Maven, que está disponible dentro de la configuración del proyecto. Esto va a requerir que usted proporcione un repositorio de configuración en el POM definición, o como propiedad.

    Esperanza de que cubre todas las preguntas que usted tenga. Si me necesitas para ser más específicos en cualquier rango de la respuesta, no dudes en preguntar.

    OriginalEl autor Łukasz Rżanek

Dejar respuesta

Please enter your comment!
Please enter your name here