Могу ли я заменить переменные Eclipse и Maven в файл log4j.properties? - PullRequest
4 голосов
/ 16 июля 2010

Вы можете использовать системные свойства в файлах конфигурации log4j, используя синтаксис $ {variablename}.

Можете ли вы включить туда переменные Eclipse (например, имя проекта) и переменные Maven (например, идентификатор артефакта) и заменить их во время соответствующей сборки?

1 Ответ

6 голосов
/ 17 июля 2010

Можете ли вы включить туда переменные Eclipse (например, имя проекта) и переменные Maven (например, идентификатор артефакта) и заменить их во время соответствующей сборки?

Для более поздних (переменные Maven) вы можете использовать фильтрацию ресурсов . Активируйте его, добавив элемент <filtering> в свой POM и установив для него значение true:

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

И любое свойство Maven, такое как ${project.artifactId}, используемое в файле ресурсов, теперь будет заменено его значением. Вы можете определить includes / excludes для более точного управления ресурсами, которые вы хотите фильтровать. Обратитесь к приведенной выше ссылке для примеров.

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

Если вы используете m2eclipse, это будет работать прозрачно внутри Eclipse.

Смотри также

...