#java #maven
Вопрос:
У меня есть проект maven с некоторыми зависимостями, и полученный артефакт содержит зависимости в виде файлов .jar внутри.
Я мог бы проверить эффективный pom, но это не показывает фактический .имена файлов / классов jar для зависимостей.
Есть ли способ распечатать имена зависимостей .jar?
Это имя всегда ${artifactId}-${version}.jar
такое ?
Комментарии:
1. Неверное предположение состоит в том, что jar содержит зависимости. Это исключение, а не способ по умолчанию. Если вы создадите. затененная/жирная банка банка содержит зависимости. По умолчанию это не так.
2. Мой артефакт-это .war, в котором есть папка lib с зависимостями .jar, а не заштрихованная банка.
3. Вы еще не писали так… война-это контейнер, который объединяет в себе несколько банок внутри… Поэтому, чтобы что-то сказать об этом, необходимо знать файл pom, который вы используете для своего файла war… Все внутренние войны jar-это зависимости переходные зависимости, указанные в вашем файле pom…?
4. Да, это зависимости переходные зависимости, приведенные в файле pom, maven помещает их туда.
5. Вы можете посмотреть через maven-dependency-plugin:дерево , которое должно печатать необходимую информацию…
Ответ №1:
Вы можете просмотреть зависимости, используемые в сборке Maven, с помощью плагина зависимостей Maven. Чтобы просмотреть зависимости в виде списка, используйте:
mvn dependency:list
Однако лучшим представлением может быть дерево зависимостей, поскольку оно четко показывает взаимосвязи между импортированными POM зависимостей и транзитивными зависимостями:
mvn dependency:tree
Если вы хотите увидеть необработанный список банок, собранных вместе в вашей сборке, вы также можете использовать copy-dependencies
цель плагина зависимостей:
$ mvn dependency:copy-dependencies -DoutputDirectory="${project.builddir}/bundled-jars"
$ ls -1 target/bundled-jars
Обратите внимание, что пункт назначения заключен в кавычки с $
экранированным, чтобы он мог использовать свойство Maven без вызова подстановки оболочки. Вы также могли бы просто написать -DoutputDirectory=target/bundled-jars
.