Как запустить веб-приложение Maven в Eclipse, когда я использую профили для заполнения файлов свойств во время сборки?
Вот пример профиля в моем POM:
<profiles>
<profile>
<id>QA</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/SomeDB</jdbc.url>
<jdbc.username>webapp</jdbc.username>
<jdbc.password>somepassword</jdbc.password>
</properties>
</profile>
...
Затем у меня есть файл свойств в папке моих ресурсов следующим образом:
jdbc.url = ${jdbc.url}
jdbc.username = ${jdbc.username}
jdbc.password = ${jdbc.password}
и, наконец, я включу фильтрацию в моем POM:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
Это на самом деле упрощенный пример, но вы получаете идею. В основном, когда я запускаю
mvn install -P QA
Maven будет фильтровать мой файл app.properties, заменить все заполнители на значения, содержащиеся в профиле, и развернуть заполненный файл свойств.
Проблема со всем этим заключается в том, что мне нравится использовать механизм Servers в Eclipse, где Tomcat работает в среде IDE. Мои проекты выполняются в этом экземпляре, и Eclipse заботится об обновлении, перераспределении и т.д. Maven не учитывается, однако, во время развертываний в среде IDE, и этот файл свойств никогда не заполняется должным образом.
Итак, как я могу продолжить выполнение моего проекта в среде IDE, но правильно ли этот файл свойств был заполнен?
Ответы
Ответ 1
Спасибо Алекс. Я закончил установку Интеграция Eclipse для Apache Maven (Eclipse IAM), ранее Q для Eclipse
Этот плагин решил две проблемы: заполнение файлов свойств во время событий публикации в сервере Eclipse и заполнение папки WEB-INF/lib. Раньше, хотя я запускал mvn eclipse: eclipse, чтобы удовлетворить свой путь сборки в Eclipse, он не публиковал эти зависимости для встроенных серверов правильно. Этот плагин делает это. Решив эти два вопроса, я не вижу никаких других препятствий для разработки проекта Maven в Eclipse с использованием встроенных серверов.
Ответ 2
Вы можете эффективно запускать любую команду Maven (в том числе с профилями) через плагин m2eclipse. Кроме того, m2eclipse работает с WTP (на мой взгляд, там, откуда появляется вкладка "Серверы" ). Я не уверен в этой части, но я использовал ее для развертывания веб-приложений в Tomcat в Eclipse для проекта Maven.