2015-10-13 2 views
16

Я понимаю, что lein deps :tree отображает дерево зависимостей всех зависимостей проекта (неявное и явное). Однако «каждая зависимость отображается только один раз внутри дерева». Мне бы очень хотелось увидеть дерево, где это не так, и что если библиотеки A и B требуют библиотеки X, то отображается библиотека X под обоими A и B.Показать полное дерево зависимостей с Leiningen

Кто-нибудь знает, как это сделать с помощью lein или какого-либо другого инструмента?

ответ

20

Вы можете сгенерировать POM Maven в из определения проекта Leiningen, а затем использовать dependency:tree плагин Maven с более verbose вариант, например:

$ lein pom 
$ mvn dependency:tree -Dverbose=true 

Это будет список зависимостей, опущенные по разным причинам, например:

| +- ring:ring-core:jar:1.4.0:compile 
| | +- (org.clojure:clojure:jar:1.5.1:compile - omitted for conflict with 1.7.0) 
| | +- (org.clojure:tools.reader:jar:0.9.1:compile - omitted for conflict with 0.10.0-alpha3) 
| | +- (ring:ring-codec:jar:1.0.0:compile - omitted for duplicate) 

Дополнительные параметры dependency:tree см. Его documentation.

+0

Блестящий. Благодарю. Для тех, у кого нет доступа к 'mvn', вы можете запустить' sudo apt-get install maven' на Ubuntu. – metasoarous

12

Это можно сделать, используя leiningen от lein deps :tree. Обратите внимание на пробел между deps и : дерево.

+0

На момент написания этой команды эта команда не отображает фактическое дерево. Он использует отступы для указания зависимостей, что делает его болью для чтения. –