Как получить список jar-файлов, включенных в сборку uberjar, с помощью плагина maven Shade? - PullRequest
0 голосов
/ 16 июня 2020

У меня есть (длинный) список того, что не должно быть включено в мой uber-jar, и мне нужен список того, что включено, чтобы я мог работать над конфигурацией и удалять дубликаты.

Я посмотрел на вывод, напечатанный mvn package, в котором перечислено множество

[INFO] Including aaa.bbb:ccc.ddd:jar:x.y.z in the shaded jar

, но я почти уверен, что некоторые из них не были включены, когда я использовал опцию minimizeJar. И просмотр выходного файла позволяет узнать только включенные классы (очень сложно отследить зависимости)

Вопрос: Какую конфигурацию я использую, как я могу получить список зависимости, которые фактически объединены в uberjar?

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Это не тот ответ, который я ищу, но ради обмена информацией вот что я сделал, чтобы найти зависимость, которую нужно удалить из затененной банки:

  • use mvn dependency:list > dep.list
    • затем вручную удалите строки, которые не являются зависимостями
    • , и отсортируйте их
  • визуально сделайте сравнение со списком jar, присутствующим в кластере развертывания
  • используйте mvn dependency:tree и мою голову, чтобы найти родительские зависимости, которые можно удалить
  • пометьте их как <scope>provided<scope/>
  • используйте <keepDependenciesWithProvidedScope>false</keepDependenciesWithProvidedScope> в конфигурации плагина тени

Утомительно ...

0 голосов
/ 17 июня 2020

Я не знаком с maven-shade-plugin, но пробовали ли вы mvn dependency: tree ? В нем должны быть перечислены все зависимости и их подзависимости вашего проекта.

Изменить: я перечитал ваш вопрос, и кажется, что вам нужно полное дерево зависимостей вашего окончательного uber-jar. Быстрый просмотр страницы maven-shade-plugin сказал мне, что любая зависимость будет упакована в uber-jar. Это должно быть то, что выводит mvn dependency:tree, но вы можете перечислить содержимое банки , а также jar tf <uber-jar>.jar. Возможно, вам придется отфильтровать родительские каталоги (например, com /) и файл манифеста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...