Otrzymuję następujące ostrzeżenie:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Co to znaczy?
Po prostu ustaw includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Jeśli musisz użyć opcji javac
-task wiele razy, możesz rozważyć użycie tej opcji PreSetDef
do zdefiniowania własnego javac
zadania, które zawsze ustawia includeantruntime="false"
.
From http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Jest to spowodowane błędem wprowadzonym w Ant 1.8. Po prostu dodaj atrybut tej nazwy do zadania javac, ustaw go na false i zapomnij, że to się kiedykolwiek zdarzyło.
Od http://ant.apache.org/manual/Tasks/javac.html :
Określa, czy uwzględnić biblioteki wykonawcze Ant w ścieżce klasy; domyślnie jest tak, chyba że ustawiono build.sysclasspath. Zazwyczaj najlepiej jest ustawić wartość false, aby zachowanie skryptu nie było wrażliwe na środowisko, w którym jest uruchamiane.
Jak wspomniał @Daniel Kutik,
presetdef
to dobra opcja. Zwłaszcza jeśli ktoś pracuje nad projektem z wielomabuild.xml
plikami, których nie możesz lub wolisz nie edytować (np. Pliki stron trzecich).Aby użyć
presetdef
, dodaj te linie dobuild.xml
pliku najwyższego poziomu :Teraz wszystkie kolejne
javac
zadania będą w zasadzie dziedziczoneincludeantruntime="false"
. Jeśli twoje projekty rzeczywiście potrzebują bibliotek uruchomieniowych ant, możesz albo dodać je jawnie do plików kompilacji LUB zestawuincludeantruntime="true"
. Ci ostatni również pozbędą się ostrzeżeń.Kolejne
javac
zadania mogą w razie potrzeby jawnie to zmienić, na przykład:Odradzam używanie
ANT_OPTS
. Działa, ale pokonuje cel ostrzeżenia. Ostrzeżenie mówi, że kompilacja może zachowywać się inaczej w innym systemie. UżywanieANT_OPTS
czyni to jeszcze bardziej prawdopodobnym, ponieważ teraz każdy system musi korzystaćANT_OPTS
z tego samego sposobu. Ponadto,ANT_OPTS
będzie obowiązywać globalnie, tłumiąc ostrzeżenia popadnie we wszystkich swoich projektachźródło
presetdef
sztuczkę w przypadku niewbudowanych zadań Ant? Próbowałem tego zscalac
, ale ponieważbuild.xml
pliki w dolnej części muszą ręcznie zdefiniowaćscalac
zadanie, zastępują wszystko, co ustawiłem na najwyższym poziomie.Chet Hosey napisał ładne wyjaśnienie tutaj :
źródło
Odpowiedź Daniela działa idealnie. Oto przykładowy fragment, który dodałem do mojego pliku build.xml:
źródło
Jeśli podoba mi się, że pracuję z linii poleceń, wykonuje się szybką odpowiedź
A następnie ponownie uruchom skrypt ant.
źródło
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.Posługiwać się
<property name="build.sysclasspath" value="last"/>
w pliku build.xmlAby uzyskać więcej informacji, wyszukaj
includeAntRuntime
w Ant javacInne możliwe wartości można znaleźć tutaj
źródło
stawiałem czoła temu samemu, sprawdzam program i funkcję. pojawiła się aktualizacja dla jdk1.8, która nie jest kompatybilna z moim starym ustawieniem (jdk1.6.0) dla mrówki w środowisku eclipse. Instaluję tę aktualizację. w tej chwili moim projektem mrówki jest budowanie sukcesu.
Spróbuj, mam nadzieję, że będzie to pomocne.
źródło