Ich erhalte folgende Warnung:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Was bedeutet das?
Einfach einstellen includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Wenn Sie die javac
-task mehrmals verwenden müssen, sollten Sie in Betracht ziehen PreSetDef
, Ihre eigene javac
-task zu definieren , die immer festgelegt wird includeantruntime="false"
.
Von http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Dies ist auf eine in Ant 1.8 eingeführte Fehlfunktion zurückzuführen. Fügen Sie der Javac-Aufgabe einfach ein Attribut dieses Namens hinzu, setzen Sie es auf false und vergessen Sie, dass es jemals passiert ist.
Von http://ant.apache.org/manual/Tasks/javac.html :
Gibt an, ob die Ant-Laufzeitbibliotheken in den Klassenpfad aufgenommen werden sollen. Der Standardwert ist yes, es sei denn, build.sysclasspath ist festgelegt. Es ist normalerweise am besten, dies auf false zu setzen, damit das Verhalten des Skripts nicht von der Umgebung abhängt, in der es ausgeführt wird.
Wie @ Daniel Kutik erwähnte,
presetdef
ist dies eine gute Option. Insbesondere, wenn man an einem Projekt mit vielenbuild.xml
Dateien arbeitet, die man nicht bearbeiten kann oder möchte (z. B. solche von Drittanbietern).Fügen Sie zur Verwendung
presetdef
die folgenden Zeilen in Ihrebuild.xml
Datei der obersten Ebene ein :Jetzt werden alle nachfolgenden
javac
Aufgaben im Wesentlichen erbenincludeantruntime="false"
. Wenn Ihre Projekte tatsächlich Ant-Laufzeitbibliotheken benötigen, können Sie diese entweder explizit zu Ihren Build-Dateien hinzufügen oder festlegenincludeantruntime="true"
. Letzteres wird auch Warnungen entfernen.Nachfolgende
javac
Aufgaben können dies bei Bedarf noch explizit ändern, zum Beispiel:Ich würde gegen die Verwendung empfehlen
ANT_OPTS
. Es funktioniert, aber es macht den Zweck der Warnung zunichte. Die Warnung weist darauf hin, dass sich der Build auf einem anderen System möglicherweise anders verhält. Die VerwendungANT_OPTS
macht dies noch wahrscheinlicher, da jetzt jedes System aufANT_OPTS
die gleiche Weise verwendet werden muss. AußerdemANT_OPTS
gelten global, Warnungen nolens volens in allen Ihren Projekten zu unterdrückenquelle
presetdef
Trick für nicht integrierte Ant-Aufgaben verwendet werden? Ich habe dies mit versuchtscalac
, aber da niedrigerebuild.xml
Dateien diescalac
Aufgabe manuell definieren müssen , überschreiben sie alles, was ich auf der obersten Ebene festgelegt habe.Chet Hosey schrieb eine schöne Erklärung hier :
quelle
Die Antwort von Daniel funktioniert einfach perfekt. Hier ist ein Beispiel-Snippet, das ich meiner build.xml hinzugefügt habe:
quelle
Wenn Sie möchten, dass ich über die Befehlszeile arbeite, wird die schnelle Antwort ausgeführt
Führen Sie dann Ihr Ameisenskript erneut aus.
quelle
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.Verwenden Sie
<property name="build.sysclasspath" value="last"/>
in Ihrer build.xml-DateiFür weitere Details suchen Sie
includeAntRuntime
in Ant javacWeitere mögliche Werte finden Sie hier
quelle
Ich stand vor dem gleichen, ich checke in Programm und Funktion ein. Es wurde ein Update für jdk1.8 installiert, das nicht mit meiner alten Einstellung (jdk1.6.0) für ant in eclipse kompatibel ist. Ich installiere das Update. Im Moment ist mein Ameisenprojekt der Erfolg.
Probieren Sie es aus, hoffe, dies wird hilfreich sein.
quelle