tutorial java ant

java - tutorial - apache maven



Mejor plantilla de Apache Ant (7)

Solía ​​hacer exactamente lo mismo ... luego cambié a maven.

Oh, es Maven 2. Temía que alguien todavía estuviera usando seriamente Maven hoy en día. Dejando a un lado las bromas: si decides cambiar a Maven 2, debes tener cuidado al buscar información, porque Maven 2 es una completa reimplementación de Maven, con algunas decisiones de diseño fundamentales cambiadas. Desafortunadamente, no cambiaron el nombre, lo que ha sido una gran fuente de confusión en el pasado (y todavía lo es a veces, dada la naturaleza "de memoria" de la web).

Otra cosa que puede hacer si desea permanecer en el espíritu Ant es utilizar Ivy para administrar sus dependencias.

Cada vez que creo un nuevo proyecto, copio el archivo ant del último proyecto al nuevo y hago los cambios apropiados (intentando al mismo tiempo hacerlo más flexible para el próximo proyecto). Pero como realmente no pensé al principio, el archivo comenzó a verse muy feo.

¿Tiene una plantilla Ant que se puede portar fácilmente en un nuevo proyecto? ¿Alguna sugerencia / sitio para hacer una?

Gracias.


Puede darle http://import-ant.sourceforge.net/ una oportunidad. Es un conjunto de fragmentos de archivos de compilación que se pueden usar para crear archivos de compilación personalizados simples.


Si está trabajando en varios proyectos con estructuras de directorios similares y desea seguir con Ant en lugar de ir a Maven, utilice la tarea Importar . Le permite tener los archivos de compilación del proyecto solo importar la plantilla y definir cualquier variable (classpath, dependencias, ...) y tener todo el script de compilación real desactivado en la plantilla importada. Incluso permite la anulación de las tareas en la plantilla, lo que le permite incluir ganchos de destino previos o posteriores al proyecto.


Solía ​​hacer exactamente lo mismo ... luego cambié a maven . Maven depende de un archivo xml simple para configurar su compilación y un repositorio simple para administrar las dependencias de su compilación (en lugar de verificar estas dependencias en su sistema de control de origen con su código).

Una característica que realmente me gusta es lo fácil que es para la versión de sus jarras, manteniendo fácilmente las versiones anteriores disponibles para los usuarios heredados de su biblioteca. Esto también funciona para su beneficio cuando desea actualizar una biblioteca que usa, como junit. Estas dependencias se almacenan como archivos separados (con su información de versión) en su repositorio de maven, por lo que las versiones antiguas de su código siempre tienen sus dependencias específicas disponibles.

Es una mejor hormiga.


Tuve el mismo problema y generalicé mis plantillas y las crecí en su propio proyecto: Antiplate . Tal vez también sea útil para ti.


Una alternativa para crear una plantilla es evolucionar una al generalizar gradualmente la secuencia de comandos Ant de su proyecto actual para que haya menos cambios que hacer la próxima vez que la copie para utilizarla en un proyecto nuevo. Hay varias cosas que puedes hacer.

Use $ {ant.project.name} en los nombres de los archivos, por lo que solo debe mencionar el nombre de la aplicación en el elemento del proyecto. Por ejemplo, si genera myapp.jar:

<project name="myapp"> ... <target name="jar"> ... <jar jarfile="${ant.project.name}.jar" ...

Estructure la estructura de su directorio fuente para que pueda empaquetar su compilación copiando directorios enteros, en lugar de nombrar archivos individuales. Por ejemplo, si está copiando archivos JAR en un archivo de aplicaciones web, haga algo como:

<copy todir="${war}/WEB-INF/lib" flatten="true"> <fileset dir="lib" includes="**/*.jar"> </copy>

Utilice los archivos de propiedades para las propiedades específicas del equipo y del archivo de compilación específico del proyecto.

<!-- Machine-specific property over-rides --> <property file="/etc/ant/build.properties" /> <!-- Project-specific property over-rides --> <property file="build.properties" /> <!-- Default property values, used if not specified in properties files --> <property name="jboss.home" value="/usr/share/jboss" /> ...

Tenga en cuenta que las propiedades Ant no se pueden cambiar una vez configuradas, por lo que anula un valor definiendo un nuevo valor antes del valor predeterminado.


Una cosa a tener en cuenta: si está utilizando Eclipse, consulte las tareas ant4eclipse. Utilizo un solo script de compilación que solicita los detalles configurados en eclipse (directorios de origen, ruta de compilación que incluye proyectos de dependencia, orden de compilación, etc.).

Esto le permite administrar dependencias en un lugar (eclipse) y aún así poder usar una compilación de línea de comandos para la automatización.