Полное указание компилятора Eclipse из _within_ build.xml

В качестве эксперимента мы хотим построить наши продукты с использованием Java-компилятора Eclipse (ecj-3.5.jar, загруженного с eclipse.org) на исполняемой версии Java 6 вместо JDK, и, насколько я понимаю, это вопрос добавления это jar для пути к муравьям и установка свойства build.compiler, указывающего на адаптер.

В том числе

<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />

в моем build.xml и при вызове ant с помощью JRE я получаю ожидаемую ошибку, что адаптер не может быть найден, и, добавив ecj-3.5.jar в путь к классам на панели Eclipse, я могу скомпилировать свой код, как и ожидалось. Я полагаю, что та же функциональность будет доступна с "-lib foo.jar" из командной строки с современными муравьями.

Теперь я хочу указать отв build.xml, который мне нужен ecj-3.5.jar для моего пути к классам, удовлетворяющий тем же условиям, что и выше. Мы уже можем сделать это с помощью задач муравья, поэтому я считаю, что это возможно.

Таким образом, вопрос: как я могу добавить к classpath, используемому javac, чтобы найти компилятортолько изнутри build.xml?

Похоже, что в предстоящем ant4eclipse 1.0 будет включен компилятор Eclipse (для этого я и хотел использовать это), поэтому его обновление (с версии 0.5) должно решить проблему, которая у нас есть.

2010-09-24: Ant4Eclipse все еще на M4 без указания того, когда релиз состоится.

2011-12-01: Мы перешли с муравья на мавена. Сценарии build.xml достигли уровня сложности, и потребовался новый подход. Любой, кому нужно выбрать, что делать - не идите по пути ant4eclipse, за исключением тривиальных проектов.

2012-11-30: Год спустя опыт maven по-прежнему в основном хороший. Существует множество причуд и изменений в мышлении, но большинство имеет смысл в контексте. Maven может легко указать уровень компилятора для отдельных проектов. Мы рассматриваем использование ecj вместо javac (по нескольким причинам), но для большинства целей javac работает хорошо.

Ответы на вопрос(2)

Ваш ответ на вопрос