2010-09-06 33 views
9

Tengo un problema con la configuración de un Ant Builder para mis proyectos de Eclipse.Agregar librerías de usuario al classpath de Ant Builder

Tengo varias librerías de terceros configuradas como bibliotecas de usuario dentro de Eclipse. Esas bibliotecas se agregan a la ruta de compilación de mis proyectos y todo funciona bien.

Mi problema es que si quiero usar Ant Builder de Eclipse, tendré que agregar algunas de las bibliotecas de usuario al classpath del Ant Builder para que funcione. Necesito esas Libs porque incluyen varias defs de tareas y tipean defs para Ant, NO COMPILAR MIS PROYECTOS. Pero, ¿cómo puedo agregar esas bibliotecas de usuario al classpath Ant Builder? No quiero "codificarlos" añadiéndolos manualmente, porque si debo cambiar una de esas libs en el futuro, también tendré que mantener todos los Ant Builders. Y no sé cómo la carga determinará la ruta a las bibliotecas de usuario en el tiempo de ejecución dentro de Ant para cargarlas dinámicamente, porque necesito esas librerías en el arranque de Ant para poder definir mis Tareas Ant necesarias con éxito.

Respuesta

10

En ese caso, es posible que desee agregar sus archivos JAR (que contienen las tareas) al tiempo de ejecución de Ant.

Ventana -> Preferencias, seleccione "Ant -> Runtime" desde la izquierda. Céntrese en "Entradas globales", luego use el botón "Agregar JAR" a la derecha para agregar archivos JAR.

Los archivos JAR que agregue serán aportados a cualquier proceso Ant que se ejecute en Eclipse.

Su siguiente pregunta podría ser: "¿por qué tengo que agregar JAR? ¿No puedo agregar mi biblioteca de usuario?". Buena pregunta, me alegro de que (estuvo a punto de) preguntar. También me molesta y no tengo idea de por qué Eclipse no ofrece esta funcionalidad. Tal vez es hora de abrir una solicitud de función ...

Editar Febrero 2014: resulta que ya se ha solicitado la adición de bibliotecas de usuarios a classpath de Ant (https://bugs.eclipse.org/bugs/show_bug.cgi?id=211669). Por lo que parece, fui yo quien lo reabrió ...

1

No estoy seguro si esto lo ayudará, pero me gusta usar Ivy en esta situación. Tengo una extensión de hormigas a medida que incluyo esa manera:

build.xml:

<project name="project" basedir="." default="deploy" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:myNamespace="antlib:org.company.module"> 
    <property file="build.${user.name}.properties" /> 
    <property file="build.${env.COMPUTERNAME}.properties" /> 
    <property file="build.properties" /> 
    <property file="build-base.properties" /> 

    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" /> 

    <!-- Configuration for external ant libs --> 
    <property name="apache.ant.ext.lib" value="${target.root}/antlib" /> 
    <mkdir dir="${apache.ant.ext.lib}" /> 
    <ivy:retrieve inline="true" pattern="${apache.ant.ext.lib}/[artifact]-[revision]-[type].[ext]" 
     conf="master" organisation="org.company" module="module" revision="1.0" /> 
    <path id="apache.ant.ext.lib.classpath"> 
     <fileset dir="${apache.ant.ext.lib}" includes="*.jar" /> 
    </path> 
    <taskdef classpathref="apache.ant.ext.lib.classpath" resource="path/to/antlib.xml" /> 
... 

entonces sus bibliotecas serán recuperados en su carpeta temporal ext hormiga hormiga lib para usar durante su tiempo de ejecución, sino que ser excluido de su proyecto. Eclipse tiene un complemento para Ivy (IvyDE) y esta técnica ha simplificado mucho mi vida.

0

Agregar nuevos usuarios/jarras externas de forma manual es engorroso: tiene razón.

He encontrado que la mejor manera de evitar tener que hacer esto es cambiar su ANT_HOME del ANT integrado con Eclipse para una instalación Ant independiente que se puede utilizar desde cualquier IDE, línea de comandos, etc.

Vaya a Window > Preferences, y en el panel izquierdo, seleccione Ant > Runtime. Seleccione el botón Ant Home a la derecha de la ventana y seleccione el directorio raíz de su instalación independiente de Ant. Eclipse tendrá la amabilidad de actualizar Ant Home Entries en el panel principal para usar esta instalación. Estoy usando Eclipse Juno aquí - las instrucciones pueden ser ligeramente diferentes para otras versiones.

Ahora se puede acceder a todos los archivos jAR caídos en ANT_HOME/lib desde sus archivos build.xml sin tener que agregarlos manualmente a la ruta de clase.

Me gustaría dar crédito a Qasim Rasheed por mostrarme este método en su blog al http://www.qasimrasheed.com/post.cfm/eclipse-configure-ant-home. Es mucho mejor que reemplazar manualmente las entradas de Ant Home (lo que resulta en su problema de tener que actualizar en esta pantalla cada vez que se agrega un nuevo jar).

Cuestiones relacionadas