Я импортировал проект Maven в Eclipse, но я все еще не уверен, как Maven и Eclipse действительно работают вместе.
Например, Eclipse только что изменил мой файл .classpath, когда я скопировал и вставил исходную папку из одного модуля в другой, пытаясь решить Могут ли модули Google App Engine делиться исходным кодом так же, как модули Maven?:
Eclipse добавил это в .classpath, когда я скопировал/вставил исходный код, который я хочу дублировать в модулях/проектах:
<classpathentry kind="src" path="/nbsocialmetrics-backend"/>
Однако Eclipse не внес никаких изменений в мои файлы POM.xml. Eclipse, кажется, доволен изменением .classpath, которое он сделал для меня, у меня нет никаких предупреждений о компиляции для любого из связанных проектов/модулей. Но mvn clean install
на верхнем уровне моего проекта жалуется на множество отсутствующих зависимостей.
Правильно ли я предполагаю, что команда Maven из командной строки, такая как mvn clean install
, не будет просматривать файл Eclipse .classpath?
Разве Maven не полагается только на следующее?
- Файлы POM.xml
- Репозитории, такие как репозиторий Maven Central
- Аргументы командной строки, переданные в
mvn
- Исходный код/ресурсы/и т.д. (материал, который вы хотите создать, а не метаданные, такие как .classpath)
Если я правильно понимаю это, почему Eclipse позволяет мне вносить изменения, которые неверны для проекта Maven, который я импортировал? Какие типы изменений в Eclipse на самом деле безопасно вносить — другими словами, какие типы изменений, которые я делаю в Eclipse, будут отражены, когда я выполню mvn clean install
в командной строке?
В качестве другого примера я пытаюсь использовать редактор WindowBuilder Eclipse для некоторого GWT в одном из моих модулей (J2EE/Maven в смысле «модуль», а не GWT в смысле «модуль»). Поскольку я хочу убедиться, что у меня есть правильная версия WindowsBuilder для разрешения Ошибка. Не найден модуль GWT для проекта Maven, импортированного в Eclipse. Должен ли я смотреть на настройки плагина Eclipse или настройки Maven POM.xml? Затмение, в данном случае, верно?
Спасибо, что помогли мне понять.