Активировать фильтрацию в maven-remote-resources-plugin

Чтобы разделить ресурс (файл свойств) между несколькими проектами, я хочу использовать maven-remote-resources-plugin, Файл общих свойств должен быть отфильтрован Maven так, чтобы реальная программа могла получить некоторую информацию о сборке.

Поскольку файл свойств всегда один и тот же, моя цель - иметь родительский pom, который обрабатывает этот файл. Структура проектов поэтому:

  • проект пакета ресурсов (содержит файл свойств)
  • родительский пом
    • Проект 1
    • Проект 2
    • ...

В идеале pom.xml Project X не содержит информации о файле свойств.

На самом деле я действительно близок к своей цели.

В родительском пом я добавил:

<plugin>
  <artifactId>maven-remote-resources-plugin</artifactId>
  <version>1.5</version>
  <executions>
    <execution>
      <id>process-remote-resources</id>
      <goals>
        <goal>process</goal>
      </goals>
      <configuration>
        <resourceBundles>
          <resourceBundle>com.gillesB:resourceJar:1.0</resourceBundle>
        </resourceBundles>
        <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
      </configuration>
    </execution>
  </executions>
</plugin>

Я также добавил зависимость com.gillesB:resourceJar:1.0,

Когда я собираю Project X, файл свойств записывается в target/maven-shared-archive-resources и это также добавляется к сгенерированному jar, Но заполнители в файле не заменяются фактическими значениями.

Если я добавлю следующее в Project X pom:

<resource>
  <directory>${project.build.directory}/maven-shared-archive-resources</directory>
  <filtering>true</filtering>
</resource>

Файл свойств в банке фильтруется. Но для этого ребенка поменять надо.

Как я не видел <resource> в документации и process-goal имеет свои собственные параметры фильтра, я ожидал, что фильтрация будет работать из коробки.

Дальнейшая информация

Я проверил журналы отладки, и кажется, что файл копируется дважды:

[INFO] Copying 1 resource
[DEBUG] file app.properties has a filtered file extension
[DEBUG] filtering D:\projectX\target\maven-shared-archive-resources\app.properties to D:\projectX\target\classes\app.properties
[DEBUG] resource with targetPath null
directory D:\pX\target\maven-shared-archive-resources
excludes []
includes []
[DEBUG] ignoreDelta true
[INFO] Copying 1 resource
[DEBUG] file app.properties has a filtered file extension
[DEBUG] copy D:\projectX\target\maven-shared-archive-resources\app.properties to D:\projectX\target\classes\app.properties
[DEBUG] no use filter components

Если я опущу <resource> только вторая часть появляется в журнале. После поиска no use filter components Наиболее полезным результатом был исходный код. К сожалению, это не очень полезно для меня.

0 ответов

Другие вопросы по тегам