Der Eclipse-Compiler kann unter Verwendung des javac-Adapters innerhalb einer Ant-Builddatei verwendet werden. Um den Eclipse-Compiler zu verwenden, definieren Sie einfach die Eigenschaft build.compiler in der Builddatei.
Damit der Stapelcompiler in einer Ant-Builddatei funktionsfähig wird, muss der Klassenpfad für Ant-Laufzeit den Eclipse-Stapelcompiler enthalten. Zur Ausführung der Ant-Builddatei gibt es folgende Möglichkeiten:
ecj.jar mit dem Argument -lib
hinzuzufügen oder in der Position ANT_HOME einen Speicherauszug davon zu erstellen.ecj.jar erreichen, oder Sie können die JAR-Datei org.eclipse.jdt.core und die Datei jdtCompilerAdapter.jar verwenden, die sich innerhalb der
JAR-Datei org.eclipse.jdt.core befinden. (Die letztgenannte JAR-Datei muss zuerst extrahiert werden.)Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<project name="compile" default="main" basedir="../.">
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
<property name="root" value="${basedir}/src"/>
<property name="destdir" value="d:/temp/bin" />
<target name="main">
<javac srcdir="${root}" destdir="${destdir}" debug="on" nowarn="on" extdirs="d:/extdirs" source="1.4">
<classpath>
<pathelement location="${basedir}/../org.eclipse.jdt.core/bin"/>
</classpath>
</javac>
</target>
</project>
Die für die ant javac-Task verwendete Syntax finden Sie in der Dokumentation zur ant javac-Task. Der aktuelle Adapter unterstützt die Javac Ant_Task der Versionen 1.4.1 bis 1.6.5.
Wenn Sie eine Version höher als 1.5.0 verwenden, können Sie das verschachtelte Compilerargument-Element
(<compilerarg>) verwenden, um compilerspezifische Optionen anzugeben.
... <javac srcdir="${root}" destdir="${destdir}" debug="on" nowarn="on" extdirs="d:/extdirs" source="1.4"> <classpath> <pathelement location="${basedir}/../org.eclipse.jdt.core/bin"/> </classpath> <compilerarg compiler="org.eclipse.jdt.core.JDTCompilerAdapter" line="-1.5 -warn:+boxing"/> </javac> ...Hinweis:
<compilerarg> zu verwenden, dessen 'compiler'-Attribut den Wert org.eclipse.jdt.core.JDTCompilerAdapter hat. Ist dieses nicht eingestellt, kann die Builddatei nur mit dem Eclipse-Compiler verwendet werden. Ist dies so festgelegt, wird das verschachtelte Compilerargument ignoriert, falls der Name anders ist als der Compilername, der durch die Eigenschaft build.compiler angegeben wird.<compilerarg> sollten keine Werte wie Zielwert, Quellenwert, Debugoptionen oder sonstige Optionen festgelegt werden, die mit den definierten Attributen der javac-Ant-Task angegeben werden könnten. Seine Verwendung muss der Übergabe compilerspezifischer Optionen wie zum Beispiel Warnungsoptionen vorbehalten sein. Wenn ein Befehlszeilenargument mehr als einmal angegeben ist, meldet der Eclipse-Stapelcompiler unter Umständen Fehler wie den folgenden:
Doppelte Spezifikation für Zielkonformitätseinstellung: 1.5