java - ¿Alguna forma de generar el archivo ant build.xml automáticamente desde Eclipse?




(7)

Desde Eclipse, descubrí que puedo exportar fácilmente un archivo de compilación Ant para mi proyecto . Proporciona referencias a bibliotecas de terceros y algunos objetivos básicos. Lo estoy usando desde mi archivo de compilación global. Lo único que me molesta de esto, es que si algo se modifica en la estructura del proyecto (como agregar una nueva biblioteca de terceros), tenemos que pensar (sí, a veces puede ser difícil) acerca de la regeneración de ese archivo build.xml. Me pregunto si alguien aquí sabe cómo actualizarlo automáticamente. Por "automáticamente" me refiero a que no sería necesario pedir explícitamente a Eclipse que lo regenere cada vez que sea necesario. Aunque no sé lo que podría ser el desencadenante ...

¿Alguna idea o conocimiento sobre esto?

¡Gracias!

MJ


Answers

  • Seleccione Archivo> Exportar desde el menú principal (o haga clic con el botón derecho en el nombre del proyecto y seleccione Exportar> Exportar ... ).
  • En el cuadro de diálogo Exportar, seleccione General> Ant Buildfiles de la siguiente manera:

  • Haga clic en Siguiente . En la pantalla Generar Ant Buildfiles:

    • Verifique el proyecto en la lista.
    • Desmarque la opción "Crear destino para compilar proyecto usando el compilador de Eclipse", porque queremos crear un archivo de compilación que sea independiente de Eclipse.
    • Deje el nombre del archivo de compilación Ant como predeterminado: build.xml

  • Haga clic en Finalizar , Eclipse generará el archivo build.xml en el directorio del proyecto de la siguiente manera:
  • Haga doble clic en el archivo build.xml para abrir su contenido en el editor Ant:

source


Soy el que donó el filtro de exportación Ant a Eclipse. eclipse2ant la función de exportación automática, pero solo a mi eclipse2ant complemento personal, que aún mantengo para coordinar las correcciones de errores.

Lamentablemente, no tengo tiempo para fusionarlo con las versiones oficiales de Eclipse.


Eche un vistazo al archivo .classpath en su proyecto, que probablemente contiene la mayor parte de la información que desea. La opción más fácil puede ser desplegar su propia "exportación de build.xml", es decir, procesar .classpath en un nuevo build.xml durante la construcción misma, y ​​luego llamarlo con una subtarea de ant.

Analizar un poco de XML me parece mucho más fácil que conectarlo a Eclipse JDT.


Haga clic derecho en un proyecto de Eclipse y luego "Exportar", luego "General" y luego "Ant archivos de compilación". Sin embargo, no creo que sea posible personalizar el formato de salida.


Tuve el mismo problema, nuestro entorno de trabajo se basa en proyectos Eclipse Java y necesitábamos construir automáticamente un archivo ANT para poder usar un servidor de integración continua (Jenkins, en nuestro caso).

Lanzamos nuestra propia herramienta Eclipse Java to Ant, que ahora está disponible en GitHub:

ant-build-for-java

Para usarlo, llama:

java -jar ant-build-for-java.jar <folder with repositories> [<.userlibraries file>]

El primer argumento es la carpeta con los repositorios. .project la carpeta recursivamente para cualquier archivo .project . La herramienta creará un build.xml en la carpeta dada.

Opcionalmente, el segundo argumento puede ser un archivo .userlibraries exportado, de Eclipse, necesario cuando cualquiera de los proyectos usa bibliotecas de usuario de Eclipse. La herramienta fue probada solo con bibliotecas de usuarios que usan rutas relativas, así es como las usamos en nuestro repositorio. Esto implica que los archivos JAR y otros archivos necesarios para los proyectos se encuentran dentro de un proyecto de Eclipse, y se hace referencia desde allí.

La herramienta solo admite dependencias de otros proyectos de Eclipse y de bibliotecas de usuarios de Eclipse.


Si todo lo que necesita son las entradas classpath, hago algo como lo siguiente para usar la ruta de construcción de eclipse.

<xmlproperty file=".classpath" collapseAttributes="true" delimiter=";" />

Luego establece ese valor en la ruta

<path id="eclipse.classpath">
    <pathelement path="${classpath.classpathentry.path}"/>
</path>


<target name="compile" depends="init">

    <javac srcdir="${src}" destdir="${build}" updatedProperty="compiled">
        <classpath refid="eclipse.classpath"/>
    </javac>
</target>

BigDecimal todo el camino. He oído que algunas personas crean sus propias clases de Money o Money que encapsulan un valor en efectivo con la moneda, pero bajo la piel sigue siendo un BigDecimal , probablemente con BigDecimal.ROUND_HALF_EVEN redondeo BigDecimal.ROUND_HALF_EVEN .

Editar: Como Don menciona en su respuesta , hay proyectos de código abierto como timeandmoney , y aunque los aplaudo por tratar de evitar que los desarrolladores tengan que reinventar la rueda, simplemente no tengo suficiente confianza en una biblioteca pre-alpha para usar en un entorno de producción. Además, si cavas bajo el capó, verás que usan BigDecimal también .





java eclipse ant build.xml