Используйте свойства maven в постоянстве. xml - PullRequest
0 голосов
/ 15 января 2020

Я хочу использовать свойства, определенные в моем pom. xml (с разными значениями для разных профилей) в моей персистентности. xml.

Точнее, я бы хотел диалект SQL используется в постоянстве для настройки в соответствии с профилем, с которым я создал приложение. Поэтому мне нужно ввести значение, сохраненное в профиле, как это:

<profile>
  <id>profileName</id>
  <properties>
    <SqlDialect>Oracle</SqlDialect>
  </properties>
</profile>

в постоянство. xml:

<property name="hibernate.dialect" value="{maven property goes here}" />

Это возможный? И если нет, есть ли другое элегантное решение (то есть другое решение, чем использование нескольких файлов постоянства для разных диалектов)?

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Ваш persistence.xml является ресурсом, верно?

Тогда вы можете настроить его как фильтрованный ресурс в POM и использовать ${some-property} для ссылки на свойство из POM.

https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

1 голос
/ 15 января 2020

Добавьте следующие строки в ваш pom, чтобы maven знал, где должен быть выполнен ответ:

<build>
    <resources>
        <resource>
            <directory>path to your persistence.xml</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
 ...
</build>

Определите переменную в вашем pom для свойства:

<properties>
    <hibernate.dialect>the dialect you want to use</hibernate.dialect>
</properties>

добавьте переменную со значением:

<property name="hibernate.dialect" value="${hibernate.dialect}" />

Но обратите внимание: все файлы в «пути к вашему постоянству. xml» будут проанализированы. Таким образом, двоичные файлы могут быть повреждены.

Поэтому, если у вас есть файлы binaray в директории, вы должны работать с исключениями и включениями:

<build>
    <resources>
        <resource>
            <directory>path to your persistence.xml</directory>
            <excludes>
                <exclude>define the binary files</exclude>
            </excludes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>path to your persistence.xml</directory>
            <includes>
                <includes>define the binary files</includes>
            </includes>
        </resource>

    </resources>
 ...
</build>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...