Como experimento queremos construir nuestros productos utilizando el compilador de Java Eclipse (ecj-3.5.jar descargado de eclipse.org) en la versión de ejecución de Java 6 en lugar del JDK , y tal como lo entiendo, es una cuestión de agregar este jar al classpath de hormigas y establecer la propiedad build.compiler para que apunte al adaptador.especificando el compilador de Eclipse completamente de _within_ build.xml
Al incluir
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
en mi build.xml e invocando hormiga con un JRE, me sale el error esperado que el adaptador no se puede encontrar, y añadiendo ecj-3.5.jar a la ruta de clase en el Panel Eclipse Puedo compilar mi código como se esperaba. Creo que la misma funcionalidad estará disponible con "-ib foo.jar" desde la línea de comandos con hormigas modernas.
Ahora, deseo especificar desde dentro de build.xml que quiero que ecj-3.5.jar en mi ruta de clase satisfaga lo mismo que el anterior. Ya podemos hacer esto con tareas de hormiga, así que creo que es posible.
Entonces la pregunta es: ¿Cómo puedo agregar al classpath utilizado por javac para localizar el compilador solo desde build.xml?
Parece que la próxima ant4eclipse 1.0 incluye el compilador Eclipse (que es lo que quería utilizar esto para), por lo que mediante la actualización a que (de 0.5) debería resolver el problema que tenemos.
24/10/2010: Ant4Eclipse está todavía en M4 sin indicación de cuándo ocurrirá el lanzamiento.
11-01-2011: ahora hemos migrado de hormiga a maven. Los scripts build.xml tocan el muro de complejidad y se necesita un nuevo enfoque. Cualquiera que necesite elegir qué hacer, no vaya por la ruta ant4eclipse, excepto para proyectos triviales.
30/11/2011: un año después, la experiencia Maven sigue siendo buena en su mayoría. Hay muchas peculiaridades y cambios en la mentalidad, pero la mayoría tiene sentido en el contexto. Maven puede especificar el nivel de compilador en proyectos individuales fácilmente. Estamos buscando usar ecj en lugar de javac (por varias razones), pero para la mayoría de los propósitos, javac funciona muy bien.
Con la hormiga enviada con Eclipse 3.5 (probablemente 1.7) me aparece "Problema: no se pudo crear la tarea o escribir componentdef". Otro mensaje de error es classpath relacionado con horm 1.8, pero realmente agradecería una solución que funcione desde dentro de Eclipse. –
Agregué otra opción para Ant 1.8 pero no veo cómo podrías hacerlo con 1.7 – Mark