Как запустить веб-приложение 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.