Затмение (STS) / проблемы интеграции Maven - PullRequest
1 голос
/ 05 января 2012

Я работаю над довольно большим проектом, который использует maven для управления зависимостями. В рамках этого мы используем профили Maven для создания и замены определенных файлов свойств, которые различаются в средах test / dev / production.

Чтобы выполнить сборку, я выполнил бы Maven: сборка с использованием правильного профиля, а реактор mavens затем собрал бы проекты в правильном порядке и сохранил файлы jar в папке .m2, например, сначала jar домена, затем jar службы (с доменным jar, включенным в его jar в качестве зависимости) и т. д. Это в конечном итоге приводит к файлу войны со всеми правильными библиотеками, необходимыми для запуска войны.

Когда eclipse выполняет сборку по умолчанию, которую он выполняет каждый раз, когда вы сохраняете файл, файлы jar создаются не с каким-либо профилем, а с обычной сборкой.

Когда я затем отправляю окончательный файл war на сервер, и он взрывается, когда сервер запускается (запускается и развертывается с помощью eclipse), я помещаю в папку lib все файлы jar, которые maven упаковал в файл war, но также банки, которые затмение построило.

например

* * 1010

Есть ли способ предотвратить это? Это имеет конечное следствие наличия двух файлов свойств, и только порядок, в котором они загружаются, определяет, какой из них используется. Реальные хлопоты, так как разные свойства используются в разных средах.

1 Ответ

1 голос
/ 05 января 2012

Я нашел немного хакерское решение этой проблемы.

В свойствах веб-проектов -> Сборка развертывания. Я изменил путь для поврежденных файлов JAR, например, domain.jar с

WEB-INF/lib/domain.jar

до

WEB-INF/autogen/domain.jar

Это приводит к тому, что сгенерированные затмением файлы jar (с неверными файлами свойств) будут развернуты в папку, которая не будет загружена при запуске tomcat.Не идеальное решение, но оно допускает все приятные моменты автоматического построения Eclipse, такие как завершение кода и сообщения об ошибках в веб-проекте, если изменяется интерфейс домена и т. Д., А также обеспечивает правильный профиль при развертывании.

Выходэто здесь для всех, кто находится в этой ситуации.

...