Используйте свойства профиля maven в application.conf

В моем файле pom.xml я настроил несколько профилей. Я хотел бы использовать значения текущего профиля в моем файле application.conf. В документации Ninja Framework упоминаются только конфигурации режима, однако я не могу найти ничего, касающегося конфигурации профиля.

Пример: в документации упоминается

database.name=database_production   # will be used when no mode is set (or prod)
%prod.database.name=database_prod   # will be used when running in prod mode
%dev.database.name=database_dev     # will be used when running in dev mode
%test.database.name=database_test   # will be used when running in test mode

Как я могу установить разные имена баз данных в зависимости от используемого профиля?

1 ответ

Решение

Вы можете добавить все, что хотите заменить как свойство, в определение своего профиля, а затем включить фильтрацию ресурсов maven следующим образом:

<build>
  ..
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
  ..
</build>
<profiles>
  <profile>
    <id>developmentProfile</id>
    <properties>
      <dbName>database.name=database_dev</dbName>
    </properties>
    <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
  </profile>
  <profile>
    <id>productionProfile</id>
    <properties>
      <dbName>database.name=database_prod</dbName>
    </properties>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
</profiles>

Будьте осторожны, если вы используете spring-boot, вы должны ссылаться на свойства в файле application.properties, например, чтобы он работал:

someOtherProp = something
@dbName@

После этого при сборке приложения необходимо правильно отфильтровать свойство:

mvn clean install -PdevelopmentProfile

Результат:

someOtherProp=something
database.name=database_dev
Другие вопросы по тегам