Я прочитав документи і не знайшов нічого, що говорить про те, для чого він використовується.
Я прочитав документи і не знайшов нічого, що говорить про те, для чого він використовується.
Відповіді:
Тінь: тінь Моджо досить добре задокументована, тут особливо про createDependencyReducedPom
параметр, який створить цей dependency-reduced-pom.xml
файл:maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
Коротше кажучи, це досить корисно, якщо ви маєте намір використовувати затінений JAR (замість звичайного JAR) як залежність для іншого модуля. Це dependency-reduced-pom.xml
не буде містити JAR-файли, вже наявні в затіненому, уникаючи марного дублювання.
Я прочитав документи близько сотні разів чи близько того, і досі не міг зрозуміти, для чого це, який насправді варіант використання.
Нарешті, це те, що я думаю: скажімо, у вас є проект із залежностями A, B, C, D, E. Під час pom.xml
налаштування плагіна тіні таким чином, що коли він створює uber-jar (називайте його foo.jar
), він включає A, B, C у затінену банку, але з якоїсь причини ви вирішили не включати D, E у затінену банку, хоча ваш проект залежить від них - приклад - залежності, які потрібні лише для тестування (наприклад, будь-яка залежність який має scope
від 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, який виводиться плагіном тіні.