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

Как я могу изменить файл .properties в maven в зависимости от моего профиля?

Как я могу изменить файл .properties в maven в зависимости от моего профиля? В зависимости от того, создано ли приложение для работы на рабочей станции или в частях центра обработки данных, my_config.properties изменяет (но не все).

В настоящее время я вручную изменяю файл .properties в файле .war после того, как hudson строит каждую версию.

4b9b3361

Ответ 1

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

Сначала включите фильтрацию ресурсов:

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

Затем объявите владельца места в src/main/resources/my_config.properties, например:

myprop1 = somevalue
myprop2 = ${foo.bar}

Наконец, объявите свойства и их значения в профиле:

<project>
  ...
  <profiles>
    <profile>
      <id>env-dev</id>
      <activation>
        <property>
          <name>env</name>
          <value>dev</value>
        </property>
      </activation>
      <properties>
        <foo.bar>othervalue</foo.bar>
      </properties>
    </profile>
    ...
  </profiles>
</project>

И запустите maven с заданным профилем:

$ mvn process-resources -Denv=dev
[INFO] Scanning for projects...
...
$ cat target/classes/my_config.properties 
myprop1 = somevalue
myprop2 = othervalue

Как я уже сказал, существуют вариации вокруг этого подхода (например, вы можете размещать значения для фильтрации в файлах), но это поможет вам начать.

Ссылки

Дополнительные ресурсы