• Java ant Выяснилась интересная проблема: Если в классе А есть public static final поле, а попросту константа, и класс Бэ пользуется ей, то в байт-коде класса Бэ не будет ссылки на класс А, а будет значение. Если поменять значение поля и пересобрать проект ant-ом, то значение поля не подхватится. Depend task тоже не спасает, так как он анализирует байт-код и не видит зависимости, и без анализа исходного кода задача не решается. Вывод — rebuild all :( Может для кого это и прописная истина, но я эти грабли вижу впервые
    ♡ recommended by @sky, @esycat

Replies (10)

  • @kvj, охрененно. спасибо. интересно, как эклипсовый компилятор это разрюхивает.
  • @sky, он то как раз парсит код
  • @kvj, собственно это один из явных доводов к полной сборке антом. всегда. удаление classes и полный ребилд. я это и раньше знал на подсознательном уровне, теперь есть явный пример. спасибо.
  • @sky, С другой стороны Netbeans собирает все антом, надо будет эксперименты на нем поставить
  • @kvj, ну там-то как раз полный ребилд всегда, насколько я помню
  • @sky, Злые они
  • @kvj, кстати, к анту можно прикрутить эклипсовый компилятор. ecj, кажется называется. можно с ним попробовать тоже
  • @kvj, смотри, а "includeDestClasses" не спасёт? ant.apache.org
  • @sky, Так она включена по-умолчанию. Там все просто: javac task определяет что компилить ТОЛЬКО по дате изменения файлов, А depend task парсит байт-код. Ни один из подходов не видит искомую зависимость
  • @kvj, а, ну да. точно :/