Estoy trabajando en un pequeño equipo (3 personas) en varios módulos (aproximadamente 10 en la actualidad). La compilación, integración y administración de las versiones de compilación es cada vez más tediosa. Estoy buscando una buena herramienta de compilación/integración para reemplazar/completar Ant.Asesoramiento sobre una buena herramienta de compilación de Java, bien integrada con eclipse
Aquí está la descripción de nuestro entorno de desarrollo actual: - Varios módulos en función de cada una y en los frascos de terceros - Algunos pueden exportar los JAR, algunas guerras de exportación, algunos independiente de exportación, tarros ejecutables (con Fat-Jar) - Javadoc para todos ellos - Trabajamos con eclipse - Script Ant personalizado para cada módulo. Mucha información redundante entre la configuración de eclipse y los scripts Ant. Por ejemplo, para el Fat-JAR independiente, hemos enumerado todas las dependencias recursivas, mientras que, idealmente, podría importarse claramente desde la configuración del eclipse. - El código fuente se versiona con el SVN
Esto es lo que me gustaría una herramienta perfecta integración a hacer por mí:
automatizar las versiones y versiones de los módulos. Idealmente, la herramienta de integración debería detectar si se necesita una nueva versión. Por ejemplo, si quiero lanzar un proyecto A que depende de un proyecto B, y si he realizado pequeños cambios en el proyecto B localmente, entonces la herramienta de integración también debe liberar una nueva versión de B y hacer que A se base en eso.
Integre fuertemente con eclipse, para que pueda obtener las dependencias entre los módulos y las librerías de terceros desde su configuración. Por cierto, me gustaría continuar configurando la ruta de compilación con eclipse sin actualizar algunas otras cosas ".xml". Vi que Gradle puede generar archivos de proyecto de eclipse a partir de su configuración, pero la contraparte sería genial.
Permiten un desarrollo "vivo" y transparente en proyectos locales. Quiero decir que a menudo hago pequeños cambios en los proyectos centrales/comunes mientras desarrollo los proyectos principales/"hoja". Me gustaría que mis cambios en los proyectos centrales estén inmediatamente disponibles para los proyectos sin necesidad de publicar (incluso localmente) los JAR de mis proyectos centrales.
Almacene todas las versiones de las versiones de mi módulo en un servidor externo. La más simple (carpeta compartida/Webdav) sería la mejor. Una buena página web con una lista de módulos y artefactos entregados sería genial también.
He buscado muchas cosas. Desde Ant4eclipse (para integrar la configuración de Eclipse en mi script Ant), a las herramientas Maven/Ivy/Gradle.
Estoy un poco confundido. Esto es lo que he entendido hasta ahora: - Maven es una gran/gran herramienta, pero es algo rígida y te obliga a apegarte a su estructura y conceptos. Se basa en la descripción en lugar de en secuencias de comandos. Si te sales del camino, debes desarrollar tus propios complementos. - Ivy es menos poderoso que maven, maneja menos cosas pero es más flexible. - Gradle está en el medio. Es de propósito general. Permite la creación de secuencias de comandos, así como la configuración "basada en la convención". Integra Ant y lo extiende.
Por lo tanto, en este momento estoy buscando testimonios reales de usuarios reales. ¿Qué herramientas usas? Cómo ? ¿Tienes las mismas necesidades que yo? ¿Facilita su vida o se interpone en el camino?
¿Hay ejemplos de algunos casos de uso, o esqueletos de espacios de trabajo que podría usar como punto de partida para ver de qué son capaces estas herramientas?
Disculpe por la duración de este mensaje. Y gracias de antemano por su consejo.
Saludos cordiales,
Raphael herramientas
Una herramienta de compilación (como Ant, Ant + Ivy, Gradle, Maven 2, etc.) o un motor de integración continua (como Hudson, CruiseControl, Bamboo, Teamcity, etc.)? Las herramientas de compilación no son realmente herramientas de CI (se pueden usar para implementar un proceso de IC rudimentario, pero no las considero como herramientas de IC). Deberías tal vez aclarar. –
Sí, tienes razón, no es una integración continua lo que necesitaba, sino una herramienta de construcción. Lo cambio en el título. –