2014-11-25 3 views
4

Я знаю, что мы можем загружать баны зависимости ... но можем ли мы загрузить родительские поры всех банок зависимости?Maven - есть ли команда для загрузки родительских попов всех банок зависимости?

Например, проект A приносит библиотеку B как зависимость, но библиотека B имеет родительский pom C.xml.

Я хочу найти команду, которая загружает все pom.xml в Bs и C.xml.

в идеале, если у C.xml есть другой родительский pom D.xml, я хочу загрузить его тоже.

ответ

1

Плагин зависимостей Maven с опцией add parent POMs.

mvn dependency:copy-dependencies -Dmdep.addParentPoms=true -Dmdep.copyPom=true 

Если это не работает из-за Maven использует старую версию плагина зависимостей (нужно 2.8 или более поздней версии для опции addParentPoms), используйте последнюю версию в явном виде:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.9:copy-dependencies -Dmdep.addParentPoms=true -Dmdep.copyPom=true 

Эти команды загружают зависимости (включая транзитивные зависимости), их POM и все родительские POM рекурсивно.

+0

Есть ли какая-либо команда, которая рекурсивно загружает все зависимые банки, включая их родительские банки из проекта. –

1

Ответ на демонстрацию показывает, что вы должны загрузить их с помощью плагина зависимостей. Если вам просто любопытно видеть этих попов, maven загружает их в местную кешированную копию репо. Просто перейдите в .m2/repoistory, и вы найдете их как -pom. Файл имя, как .pom и на самом деле pom.xml для конкретного артефакта

1

Самым простым решением является использование

mvn org.apache.maven.plugins:maven-dependency-plugin:2.9:resolve 

или более коротко:

mvn dependency:resolve 

будет решать все зависимостей, в т.ч. pom и т. д. После этого вы можете построить с помощью этого репозитория. Они будут загружены в локальный репозиторий. Если вам нравятся эти артефакты, в том числе. их пемы в конкретный каталог, чем вы должны использовать предложения, сделанные @punge.