Как игнорировать отсутствующую ошибку файла фильтра на pom.xml в Eclipse при использовании фильтрации ресурсов?

у меня есть многомодульный проект, как это:

parent
|
+-- childA
|   +-- src/main/resources/application.properties
|
+-- childB
    +-- src/main/resources/application.properties
    +-- src/main/filters/filter.properties

я фильтрую application.properties в обоих childA и childB с помощью filter.properties in childB.

я следовал стратегия чтобы прикрепить файл фильтра к артефакту childB, а затем распаковать его на цели childA:

childA/target/filters/filter.properties

childA имеет фильтрацию ресурсов, как это:

<build>
  <filters>
    <filter>target/filters/filter.properties</filter>
  </filters>
</build>

Eclipse помечает ошибку на childA/pom.xml:

ошибка при загрузке файл свойств 'parentchildAtargetfiltersfilter.свойства' (org.апаш.знаток.Плагины: maven-resources-plugin:3.0.2: copy-resources:default-resources: process-resources)

файл фильтра доступен, когда я создаю приложение,поэтому меня это не волнует.

как я могу обновить pom.xml childA навсегда игнорировать эту ошибку?

2 ответов


проблема ушла после обновления с Eclipse Luna до Neon.


Вы взяли что из своего цель. Это неправильный путь. Вы должны рассмотреть его от .

<filters>
    <filter>${basedir}/src/main/filters/filter.properties</filter>
</filters>

для более, вы можете пройти через этот учебник:ошибка загрузки файла свойств Maven

обновление#2:

С моей стороны вы можете сохранить файл свойств в своем родителе. Затем дайте ссылку на ChildA и childB, используя следующий фильтр. Надеюсь, это будет работа.

<filters>
    <filter>${basedir}/src/main/filters/filter.properties</filter>
</filters>

обновление#3:

Стивен Конноли сказал в своем посте, как показано ниже:

думать о том, что происходит, когда ваш проект указан как зависимость. Если вы указали его зависимости, используя mojo, чтобы вытащить их от .файл свойств на диске, Maven не имеет возможности реплицировать это когда ваша зависимость была извлечена из репозитория Maven. Так Maven не сможет определить зависимости. Таким образом он смог никогда работа.

что вы могли бы сделать, это использовать внешнюю систему (например, ANT) для генерации ПФЛ.xml из шаблона с версиями, замененными в этот файл. А затем используйте экземпляр шаблона для сборки.

Ссылка На Ресурс: https://stackoverflow.com/a/14727072

подобный вопрос задается здесь: свойство Maven2, указывающее родительский каталог

Деннис Лундбарг сказал это выпуск как анти-шаблон в этот пост:

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

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