2011-06-15 14 views
5

He rodado a mano el sistema de compilación de mi proyecto (principalmente en Python + Hudson). Una de las cosas que debo hacer con bastante frecuencia es buscar artefactos de Hudson/Jenkins río arriba.¿Hay alguna tarea Ant que pueda obtener un artefacto de Hudson/Jenkins?

Estos artefactos pueden ser casi cualquier cosa, por ejemplo, un archivo zip lleno de datos comerciales para procesar o incluso un huevo que contiene una carga de código python que debe probarse. Casi todos los trabajos importantes en nuestro sistema tienen dependencias ascendentes en artefactos producidos por otros trabajos en Hudson.

Mi administrador ha sugerido que la próxima iteración del sistema de compilación debería reemplazar algunos de mis componentes laminados a mano con Ant. El objetivo de esta próxima iteración será reducir la complejidad de nuestros sistemas y ponerlos en línea con el trabajo de otros equipos que utilizan principalmente Java y Ant (y muy poco Python).

También estoy personalmente interesado en tener una excusa para aprender Ant. Parece una herramienta realmente útil.

Por lo tanto, para no volver a inventar la rueda, un componente que definitivamente necesitaré es una tarea Ant que pueda obtener un artefacto de una construcción particular de Hudson. Existe tal cosa. Si no existe, ¿hay algo cercano a mis requisitos que pueda personalizar? Prefiero no volver a inventar la rueda.


ACTUALIZACIÓN1: Tenemos una fuerte preferencia por herramientas 100% gratuitas y de código abierto. Todos en el equipo están muy contentos con Ant, sin embargo, Maven es algo de lo que el equipo está intentando alejarse.

+0

¿Por qué wget no es suficiente? ¿Debido a la punción de dedos del artefacto? Si es así, vea mi pregunta recién creada: http://stackoverflow.com/questions/17744340/perform-jenkins-fingerprinting-invoked-from-apache-ant-build-script –

Respuesta

7

La solución apropiada es publicar los artefactos de Hudson/Jenkins a un gestor de artefactos, tales como Nexus o Artifactory, y luego tirar de las versiones de artefactos con algo como Ivy o Gradle.

+0

¿Hay alguna tarea Ant que obtenga directamente de Artifactory? ? Para hacer las cosas más complejas, a veces estoy interesado en una versión especial de un artefacto, p. los datos de la empresa para una fecha histórica única (a diferencia de los últimos datos comerciales). –

+0

Sí, puede integrar ivy con ant, lo que le permitirá apuntar a un servidor nexus/artifactory y extraer dependencias. Idealmente, usted estaría "liberando" versiones de su aplicación, así como la última (SNAPSHOT), que hiedra le permitiría especificar. –

+0

Ivy es un producto apache, por lo que la documentación para su uso dentro de hormiga es bastante buena. http: //ant.apache.org/ivy/history/2.2.0/ant.html –

4

Si debe obtener las dependencias usted mismo, puede usar la tarea get. Ejemplo:

<get src="http://jenkins/job/project-name/lastSuccessfulBuild/artifact/foo.jar" 
    dest="/path/to/local/file"/> 

Yo, sin embargo, de acuerdo con Stefan - gestión de la dependencia se logra mejor mediante herramientas mencionadas en su respuesta en vez de tirar hacia abajo de forma manual por sí mismo utilizando Ant.

+0

Un enfoque que estoy considerando es personalizar la tarea Ant get. Una tarea de obtención de Hudson especificaría la URL base de Hudson y algunos criterios adicionales para obtener un artefacto. –

+0

Mi sistema actual puede obtener los últimos artefactos de un trabajo, sin embargo, también puede hacer cosas como obtener el último artefacto que coincida con una especificación de archivo, o incluso obtener algunos de los artefactos producidos en una fecha histórica particular. Usamos Hudson como un entorno de ejecución por lotes de uso general. –

+0

Bueno, siempre puedes usar

  • 11. ¿Hay alguna forma de que MS Access pueda obtener el usuario actual de Active Directory?
  • 12. Finetuning FindBugs tarea ant
  • 13. ¿Hay alguna forma de generar un guid en ANT?
  • 14. Macrodef Ant: ¿Hay alguna manera de obtener el contenido de un parámetro de elemento?
  • 15. ¿Alguna posibilidad de que javafuse pueda funcionar?
  • 16. múltiple depende de tarea ant
  • 17. ¿Hay alguna manera de crear un objeto python que no se pueda ordenar?
  • 18. ¿Hay alguna manera de hacer que un enlace se pueda hacer clic en el terminal OSX?
  • 19. ¿Qué puede hacer Phing que Ant no pueda?
  • 20. Error de la tarea Ant scp
  • 21. Jenkins no ejecuta la tarea Ant
  • 22. Deteniendo una tarea java paralela con ant
  • 23. ¿Hay alguna herramienta que pueda mostrar visualmente un repositorio SVN (es decir, gráficos bonitos)?
  • 24. ¿Hay alguna biblioteca que pueda escribir un archivo CSV RFC 4180 con PHP?
  • 25. Ant éxito incluso cuando la tarea Ant falla
  • 26. ¿Cómo ejecuto un comando Ant si una tarea falla?
  • 27. ¿Hay alguna manera en que pueda hacer que g ++ solo emita advertencias relacionadas con mis archivos?
  • 28. ¿Hay alguna herramienta que pueda informar sobre el código .NET comentado?
  • 29. Usando tarea ant Maven para instalar frasco para repositorio local
  • 30. ¿Hay alguna manera de que pueda cambiar el orden de carga de Apache VirtualHosts primero?