Активировать фильтрацию в maven-remote-resources-plugin - PullRequest
0 голосов
/ 18 мая 2018

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

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

  • проект пакета ресурсов (содержит файл свойств)
  • родительский 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 имеет свои собственные параметры фильтра, я ожидалэта фильтрация работала бы из коробки.

Дополнительная информация

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

[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 самым полезным результатом стал исходный код .К сожалению, это не очень полезно для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...