Especificando o Compilador Eclipse Completamente de _within_ build.xml
Como um experimento, queremos construir nossos produtos usando o compilador java Eclipse (ecj-3.5.jar baixado de eclipse.org) na versão em tempo de execução do Java 6 em vez do JDK e, pelo que entendi, é uma questão de adicionar este jar para o caminho de classe ant e definindo a propriedade build.compiler para apontar para o adaptador.
Ao incluir
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
no meu build.xml e invocando ant com um JRE, recebo o erro esperado de que o adaptador não pode ser encontrado e, adicionando ecj-3.5.jar ao caminho de classe no painel Eclipse, posso compilar meu código conforme o esperado. Eu acredito que a mesma funcionalidade esteja disponível com "-lib foo.jar" na linha de comando com formigas modernas.
Agora, eu quero especificar dedentro build.xml que eu quero ecj-3.5.jar no meu caminho de classe que satisfaça o mesmo que acima. Já podemos fazer isso com tarefas ant, então acredito que é possível.
Portanto, a pergunta é: como posso adicionar ao caminho de classe usado pelo javac para localizar o compiladorsó de dentro do build.xml?
Parece que o próximo ant4eclipse 1.0 inclui o compilador Eclipse (que era para isso que eu queria usar isso); portanto, fazer o upgrade para isso (de 0,5) deve resolver o problema que temos.
24-09-2010: O Ant4Eclipse ainda está no M4 sem indicação de quando o lançamento ocorrerá.
01/12/2011: Agora migramos de formiga para maven. Os scripts build.xml atingiram o limite de complexidade e foi necessária uma nova abordagem. Qualquer pessoa que precise escolher o que fazer - não siga o caminho ant4eclipse, exceto em projetos triviais.
30/11/2012: Um ano depois, a experiência do maven ainda é boa. Existem muitas peculiaridades e mudanças de mentalidade, mas a maioria faz sentido no contexto. O Maven pode especificar o nível do compilador em projetos individuais facilmente. Estamos pensando em usar ecj em vez de javac (por várias razões), mas para a maioria dos propósitos o javac funciona bem.