Как я могу изменить файл .properties в maven в зависимости от моего профиля? - PullRequest
24 голосов
/ 06 октября 2010

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

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

1 Ответ

62 голосов
/ 06 октября 2010

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

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

<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
<b>myprop2 = othervalue</b>

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

Ссылки

Больше ресурсов

...