Подтвердить что ты не робот

Как maven компилирует только измененные java файлы?

Мне было просто интересно узнать об этом, когда я даю mvn install, не делая "clean", maven компилирует только измененные java файлы. Как изменяет maven файл java или нет? Я считаю, что он не использует последнее модифицированное свойство файла.

Причина моей веры: у меня был модуль, после слияния изменений с svn, я дал mvn install и не скомпилировал измененный файл, и когда я посмотрел на изменение, я увидел, что "long" были изменены на ' Долгое время в геттерах и сеттерах.

Итак, я просто хочу знать, как maven идентифицирует, изменился ли файл java или нет?

(P.S Я использую Apache Maven 3.0.3, если это имеет значение)

4b9b3361

Ответ 1

Я считаю, что плагин компилятора Maven использует последние измененные даты в файлах источника и класса, чтобы определить необходимость повторной компиляции.

Компилятор веб-сайт довольно коротко относится к информации, но страница цели compiler:compile содержит информацию о следующем атрибуте, который точно настраивает вычисления таргетинга: http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#staleMillis. Это о единственном официальном заявлении о стойкости.

Ответ 2

Не зная много о maven, я могу сказать вам, что, вообще говоря, "make" -подобные инструменты используют "последнюю измененную" временную метку, что объясняет проблему, с которой вы столкнулись с svn (см. Википедия о недостатках Subversion.