Как сборщики Java и Maven работают вместе в eclipse?
Правильно ли я понимаю, что Java-компоновщик перекомпилирует источники на пути к пути вывода, что обычно происходит после каждого "ctrl + s", если активировано автоматическое здание или через "ctrl + b" или выдает ошибки проверки из javac.
Что касается Maven2Bulder. Я просто клонировал m2e-core git репозиторий и есть соответствующий класс org.eclipse.m2e.core.internal.builder.MavenBuilder, который довольно сложный материал.
<projectDescription>
<name>modeshape-example-repositories</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Я думал, что он получает переменные pom.xml, m2eclipse о местоположении репо и файле settings.xml или какой-либо информации о профиле и цели/цели текущей конфигурации запуска, и она просто запускает mvn с помощью этой информации, но она намного больше и это может привести к неожиданному поведению.
Btw, используется ли это только тогда, когда разработчик фактически запускает как > некоторую цель maven...?
Ответы
Ответ 1
Основная цель Maven-строителя - обеспечить правильность вашего POM файла и вытащить нужные вам зависимости. Он выйдет и проверяет наличие новых зависимостей, если вы сохраните свой POM файл, и он сообщит об ошибках, когда он не сможет найти зависимости.
Кроме того, maven builder выполнит создание maven до цели, установленной вами в Preferences -> Maven->Goal to run after updating project configuration
после того, как вы выполните Project->Clean...
в своем проекте из eclipse или внесите изменения в файл POM и сохраните его из eclipse.
Java Builder по-прежнему отвечает за создание проекта и сообщений об ошибках компилятора в представлении "Проблемы", для обеспечения ввода встроенного jUnit runner в eclipse и т.д.