У меня есть веб-проект maven, который импортирован в eclipse. У меня есть еще один проект maven (создает файл jar), от которого зависит веб-проект.
Оба этих проекта корректно работают при запуске из командной строки. Пакет mvn создает файл войны, который извлекает банку, от которой он зависит, из репозитория maven для веб-проекта. Пакет mvn создает допустимый файл jar при запуске для библиотеки.
Когда я импортирую библиотеку в Eclipse, m2e распознает, что веб-проект зависит от библиотеки, и обновляет части проекта, чтобы воспользоваться тем фактом, что оба проекта maven размещены в одном рабочем пространстве Eclipse. Раздел «Зависимости Maven» на вкладке «Библиотеки» параметра «Путь сборки Java» для веб-проекта удаляет файл jar библиотеки и заменяет его проектом библиотеки. Поскольку библиотека обновляется в Eclipse, веб-проект распознает эти изменения без необходимости установки/развертывания библиотеки.
Проблема возникает, когда я пытаюсь запустить веб-приложение в Eclipse. Поскольку Eclipse фактически строит веб-проект на основе версии библиотеки в Eclipse, он не развертывает файл библиотеки из репозитория maven, а создает новый файл jar, который является снимком текущей версии библиотеки в Eclipse. Все это в целом работало хорошо для меня, но в проекте, над которым я сейчас работаю, возникла проблема с файлом jar, который создает Eclipse. Вместо того, чтобы вставлять файлы классов для библиотеки, кажется, что он берет каталог «src» моего проекта Maven и заархивирует его как файл jar. Содержимое jar-файла выглядит примерно так:
-main
-java
-com
-... *.java
-resources
-...
-test
-java
-com
-... *.java
Где я ожидаю, что это будет выглядеть примерно так:
-com
-... *.class
Поскольку я успешно использовал этот тип проекта раньше, я пытаюсь выяснить, нужно ли что-то настраивать или я просто столкнулся с ошибкой.
Я использую последнее обновление m2e (1.0.200.20111228-1245) на Eclipse Indigo (идентификатор сборки: 20120216-1857).