Я прочитал документы и не нашел ничего, что говорило о том, для чего оно использовалось.
Какова цель зависимого-reduced-pom.xml, генерируемого плагином тени?
Ответ 1
Тень: тень Mojo довольно хорошо документирована, особенно особенно в отношении параметра createDependencyReducedPom
, который создаст этот файл dependency-reduced-pom.xml
: maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
Короче говоря, это очень полезно, если вы намерены использовать этот затененный JAR (вместо обычного JAR) в качестве зависимости для другого модуля. То, что dependency-reduced-pom.xml
не будет содержать JAR, уже присутствующие в затененном, избегая бесполезного дублирования.
Ответ 2
Я прочитал docs около ста раз или около того и до сих пор не мог понять, для чего это нужно, что действительно является прецедентом для он.
Наконец, это то, о чем я думаю: скажем, у вас есть проект с зависимостями A, B, C, D, E. В pom.xml
вы настраиваете теневой плагин таким образом, чтобы при создании uber-jar (назовите его foo.jar
), он включает A, B, C в затененной банке, но по какой-то причине вы решили не включать D, E в заштрихованную банку, даже если ваш проект зависит от них - примером может быть зависимость, которая необходимы только для тестирования (например, любая зависимость, которая имеет scope
of test
и не включена в заштрихованную банку). dependency-reduced-pom.xml
будет определять D, E в нем. Идея состоит в том, что если кто-то хочет использовать foo.jar
, то dependency-reduced-pom.xml
дает какую-то подсказку, которая остерегается foo.jar
не содержит зависимостей D, E в ней - используйте на свой страх и риск. Затем вы можете решительно добавить D, E в проект, который будет использовать foo.jar
.
Итак, dependency-reduced-pom.xml
больше похож на missing-dependencies.xml
и перечисляет зависимости, отсутствующие в uber-jar, которые выводятся плагином тени.