Я получаю следующее предупреждение:
[javac] build.xml:9: warning: 'includeantruntime' was not set,
defaulting to build.sysclasspath=last; set to false for repeatable builds
Что это значит?
Просто установите includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Если вам нужно использовать javac
-task несколько раз, вы можете рассмотреть возможность использования PreSetDef
своей собственной javac
-task, которая всегда устанавливается includeantruntime="false"
.
С http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Это вызвано ошибкой в версии 1.8. Просто добавьте атрибут с таким именем в задачу javac, установите для него значение false и забудьте, что это когда-либо происходило.
С http://ant.apache.org/manual/Tasks/javac.html :
Включать ли библиотеки времени выполнения Ant в classpath; по умолчанию да, если не установлен build.sysclasspath. Обычно лучше установить значение false, чтобы поведение скрипта не зависело от среды, в которой он запущен.
Как отметил @Daniel Kutik,
presetdef
это хороший вариант. Особенно, если вы работаете над проектом со многимиbuild.xml
файлами, которые нельзя или не хотите редактировать (например, от сторонних разработчиков).Чтобы использовать
presetdef
, добавьте эти строки в вашbuild.xml
файл верхнего уровня :Теперь все последующие
javac
задачи будут по существу наследоватьсяincludeantruntime="false"
. Если вашим проектам действительно нужны библиотеки времени выполнения ant, вы можете явно добавить их в файлы сборки или установитьincludeantruntime="true"
. Последний также избавится от предупреждений.Последующие
javac
задачи могут все еще явно изменить это при желании, например:Я бы рекомендовал против использования
ANT_OPTS
. Это работает, но это побеждает цель предупреждения. Предупреждение говорит о том, что в другой системе сборка может вести себя по-другому. ИспользованиеANT_OPTS
делает это еще более вероятным, потому что теперь каждая система должна использоватьANT_OPTS
одинаково. Кроме того,ANT_OPTS
будет применяться глобально, подавляя предупреждения волей-неволей во всех ваших проектахисточник
presetdef
трюк для не встроенных задач Ant? Я пытался это сделатьscalac
, но поскольку нижниеbuild.xml
файлы должны вручную определятьscalac
задачу, они переопределяют все, что я установил на верхнем уровне.Чет Хоси написал хорошее объяснение здесь :
источник
Ответ от Даниэля работает просто отлично. Вот пример фрагмента, который я добавил в свой build.xml:
источник
Если вы хотите, чтобы я работал из командной строки, быстрый ответ выполняется
А затем снова запустите свой сценарий муравья.
источник
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.Используйте
<property name="build.sysclasspath" value="last"/>
в своем файле build.xmlДля получения более подробной информации искать
includeAntRuntime
в Ant JavacДругие возможные значения можно найти здесь
источник
Я столкнулся с этим же, я проверяю в программе и функции. было установлено обновление для jdk1.8, которое несовместимо с моими старыми настройками (jdk1.6.0) для ant в eclipse. Я устанавливаю это обновление. Прямо сейчас мой муравейный проект - это успех сборки.
Попробуйте, надеюсь, это будет полезно.
источник