2015-05-15 3 views
9

ли Затмение "Построить Проект" команды такие же как Maven команды "МВН компилировать"? Оба в основном делают то же самое?разница между Eclipse, сборки проекта и Maven Compile команду

Если Да, то зачем мне «строить проект» в STS после запуска «mvn clean install» для запуска приложения без каких-либо проблем? Запуск «mvn clean install» должен был уже скомпилировать проект. Не нужно ли обновлять проект в STS, чтобы запустить его?

Если Нет, то есть ли Eclipse строить разные, потому что Java-компилятор реализует спецификацию языка Java для создания классов? Но следующее Apache Maven link говорит, что компилятор по умолчанию - javax.tools.JavaCompiler (кстати, я использую Java 1.6).

ответ

0

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

Внутренняя сборка Eclipse (проект сборки Eclipse или сборка или очистка) и сборка Maven/Ant в основном делают то же самое, что означает, что они оба скомпилируют файл исходного кода. Теперь очевидная разница заключается в том, что внутренняя сборка Eclipse не будет генерировать файлы EAR, WAR и т. Д., Которые вы используете с помощью ANT/Maven.

Если ANT/Maven вы указываете путь к классу, используя соответствующие элементы, и то же самое можно сделать в Eclipse, сконфигурировав путь сборки, чтобы при построении Eclipse внутренняя сборка, можно ссылаться на эти JAR или библиотеки времени исполнения.

Что касается компилятора, то при построении с использованием Eclipse он будет использовать свой собственный внутренний javac-компилятор Java-версии, в который входит Eclipse. Вы можете найти версию Java, используя Window> Preference> Java> Compiler. Хотя в случае вашей собственной сборки проекта он будет ссылаться на ваш JAVA_HOME.

11

Короткий ответ no, сборка maven и затмение не то же самое.

В принципе, затмение имеет свой собственный способ построения вещей, который имеет мало общего с maven. На самом базовом уровне Eclipse просто компилирует Java, используя собственный Java-компилятор (часть Eclipse JDT).

Точный ответ на то, как они отличаются, трудно дать, ситуация довольно сложная, и это зависит именно от того, какие материалы (плагины Eclipse) вы установили.

Чтобы получить как можно более близкое приближение, так что то, что делает Eclipse, больше всего похоже на то, что maven делает на командной строке, вы должны установить m2e (maven eclipse tooling).

M2E пытается заставить поведение Eclipse IDE «эмулировать» как можно ближе к поведению командной строки maven. Он делает это, настраивая проект eclipse. Например, установка исходных папок, classpath и т. Д., Основанных на maven poms. Это работает очень хорошо, если ваши помы не делают «причудливые» вещи (т. Е. Используют некоторые не столь распространенные плагины maven).

Когда вы используете плагины maven в своей pom, чтобы делать «специальные» вещи, например, может генерировать какой-то код или что-то в этом роде, то m2e имеет механизм плагина, который позволяет авторам плагина maven определять соответствующий плагин eclipse, который «учит eclipse», как сделать то же самое.

Это может быть волосатое, потому что не все плагины maven имеют соответствующие плагины Eclipse, и даже если они это сделают, они не будут автоматически установлены для вас в ваш экземпляр Eclipse.

Если у вас нет плагинов, чтобы «обучать затмению» о некоторых плагинах вашего pom. M2e предоставит вам error about lifecyle mapping. Это указывает на то, что команда m2e и maven не может «сделать то же самое» для вашего проекта, и вам решать ее каким-то образом (например, путем установки соответствующего конфигуратора проекта Eclipse »).

Смежные вопросы