Подтвердить что ты не робот

Maven Измените значение в файле на основе профиля

У меня есть файл свойств ApplicationResources.properties в моем приложении со свойством, которое изменяется в зависимости от среды. Скажем, свойство:

     resources.location=/home/username/resources

и это значение отличается, когда приложение выполняется во время разработки и когда приложение переходит в производство.

Я знаю, что могу использовать разные профили в Maven для выполнения различных задач сборки в разных средах. То, что я хочу сделать, - это как-то заменить значение resource.location в файле свойств на основе используемого профиля Maven. Возможно ли это?

4b9b3361

Ответ 1

Что я хочу сделать, так или иначе заменить значение resource.location в файле свойств на основе используемого профиля Maven. Возможно ли это?

Да, это так. Активируйте фильтрацию ресурсов и определите значение для замены в каждом профиле.

В вашем ApplicationResources.properties объявите токен, чтобы заменить его следующим образом:

resources.location=${your.location}

В вашей POM добавьте тег <filtering> для соответствующего <resource> и установите его как true:

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

Затем добавьте элемент <your.location> внутри элемента <properties> внутри каждого профиля:

<project>
  ...
  <profiles>
    <profile>
      <id>my-profile</id>
      ...
      <properties>
        <your.location>/home/username/resources</your.location>
      </properties>
      ...
    </profile>
    ...
  </profiles>
</project>

Подробнее о фильтрации ресурсов здесь и здесь.