Is dependency-reduced-pom.xml автоматически используется вместо pom.в XML?

и dependency-reduced-pom.xml создано Maven shade плагин автоматически используется в проектах, которые зависят от uberjar (вместо обычного pom.xml)?

спрашивая это после прочтения ряда зависимостей-reduced-pom.вопросы, связанные с xml, и не имеют ответа:

Maven shade плагин добавление зависимости-снижение-pom.xml в базовый каталог

какова цель зависимости-reduced-pom.XML генерируется плагином shade?

что такое ' dependency-reduced-pom.xml-файл, который был создан при вызове команды пакета maven?

1 ответов


на dependency-reduced-pom.xml генерируется во время сборки в ${basedir} проекта. Этот файл является временным файлом, который используется только для упаковки в затененной банки. Цитирование документации createDependencyReducedPom:

отметьте, нужно ли создавать упрощенный POM для затененного артефакта. Если установлено значение true, зависимости, которые были включены в банку uber, будут удалены из <dependencies> раздел сгенерированного POM. Уменьшенный POM будет имени dependency-reduced-pom.xml и хранится в том же каталоге, что и затененный артефакт. Если не указать dependencyReducedPomLocation, плагин создаст временный файл имени dependency-reduced-pom.xml в проекте basedir.

чтобы было ясно, после maven-shade-plugin запустить:

  • ваш начальный POM останется неизменным;
  • временный файл, который вы можете полностью проигнорировать имени dependency-reduced-pom.xml будет создан внутри корня папка (это считается открытой проблемой с этим плагином);
  • затененный артефакт будет содержать ваш первоначальный POM без изменений внутри META-INF каталог, а не уменьшенный POM (это не очень важно, но лучше упомянуть об этом - была проблема об этом, которая была закрыта автоматически:MSHADE-36);
  • POM, который будет развернут, является уменьшенным POM;
  • затененный артефакт по умолчанию будет основным артефактом проекта.