Я прочитав документи і не знайшов нічого, що говорить про те, для чого він використовується.
Я прочитав документи і не знайшов нічого, що говорить про те, для чого він використовується.
Відповіді:
Тінь: тінь Моджо досить добре задокументована, тут особливо про 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, який виводиться плагіном тіні.