maven, xml файлы для разных профилей

У меня есть Maven Pom с 2 профилями: Dev и производство

У меня есть несколько XML-файлов в моем проекте. Например, persistence.xml. Настройки для dev и производственных сред отличаются

Мне нужен способ иметь правильные файлы в dev и производственных сборках

Возможно ли иметь по 2 копии каждого xml-файла и поместить их в сборки правильно? Или, возможно, можно использовать настройки из файла POM внутри XML-файла?

Любые другие идеи или лучшие практики?

1 ответ

Решение

На то, что вы ищете, уже ответили здесь: Maven: включить файл ресурсов на основе профиля

Вместо того, чтобы иметь два файла, другое решение будет использовать свойства непосредственно внутри properties.xml:

    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
    <property name="hibernate.connection.username" value="${db.username}"/>
    <property name="hibernate.connection.password" value="${db.password}"/>
    <property name="hibernate.connection.url" value="${db.connectionURL}/database"/>

В вашем pom.xml определите значение для каждого свойства для каждой среды:

<profile>
  <id>development</id>
  <properties>
    <db.username>dev</db.username>
    <db.password>dev_password</db.password>
    <db.connectionURL>http://dev:3306/</db.connectionURL>
  </properties>
</profile>
<profile>
  <id>production</id>
  <properties>
    <db.username>prod</db.username>
    <db.password>prod_password</db.password>
    <db.connectionURL>http://prod:3306/</db.connectionURL>
  </properties>
</profile>

Затем вы можете использовать фильтрацию, чтобы включить замену токена по правильному значению в каждой среде:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

Подробнее о режиме этого решения смотрите на этой странице.

Если вам действительно нужно иметь две копии одного и того же файла, вы также можете использовать

Другие вопросы по тегам