Maven war содержит дополнительные зависимости, если не построен отдельно

У меня есть война, в которой я пытаюсь уменьшить зависимости, содержащиеся в ней, WEB-INF/lib, поскольку они предоставляются на ухо, и если они только на ухе, это решает некоторые проблемы с загрузчиком классов, которые у меня были.

Если я запускаю mvn clean install в модуле для войны, он создает только те зависимости, которые мне нужны. Если я поднимусь на уровень выше и запущу mvn install в проекте (война определена как модуль в pom.xml на этом уровне), то война будет переупакована с намного дополнительными зависимостями.

Почему поведение будет другим и как я могу остановить все эти дополнительные зависимости?

Я пытался следовать совету здесь, но не увидел разницы в поведении: http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html

Maven 2.0.6, maven-ear-plugin 2.4.1, maven-war-plugin 2.1-beta-1 (изменить версии не могу, нахожусь в закрытой сети). Заранее спасибо.

ETA: чистая установка mvn на уровне проекта дает мне желаемые результаты. mvn clean, а затем mvn install добавляет дополнительные банки, которые мне не нужны.


person rich    schedule 10.11.2010    source источник
comment
Как выглядит структура вашего проекта? Фрагменты POM?   -  person khmarbaise    schedule 10.11.2010
comment
Родительский pom.xml содержит тег модуля для модуля войны и модуля уха. Ухо pom.xml содержит тег webModule для войны, а также тег зависимости.   -  person rich    schedule 10.11.2010


Ответы (1)


Запустите mvn dependency:tree, чтобы увидеть, откуда берутся зависимости (вероятно, транзитивные).

Вы захотите прочитать «Maven the Definitive Guide» (бесплатный PDF от Sonatype), чтобы получить более глубокое представление о том, как Maven работает с управлением зависимостями.

И пожалуйста, найдите способ обновиться до maven 2.1.0 (предпочтительно 2.2.1) и последних версий плагинов, более ранние версии, как известно, содержат ошибки.

person Martijn Verburg    schedule 10.11.2010
comment
Я попробую получить PDF, спасибо. Дерево зависимостей показывает мне полный список всех зависимостей, почти все из которых помечены как предоставленные. Те немногие, которые мне нужны, предназначены для компиляции, а некоторые другие - для тестирования и попадают в военную библиотеку при сборке модуля. Но все остальные попадают туда при создании проекта. Я не уверен, что дерево говорит мне что-то большее, чем я уже знаю. - person rich; 10.11.2010
comment
Вы запускали mvn dependency:tree на уровне проекта уха или на уровне родителя? - person Martijn Verburg; 10.11.2010
comment
Родительский и военный уровень. Выход кажется таким же. - person rich; 10.11.2010
comment
Что происходит, когда вы строите на уровне ушей? - person Martijn Verburg; 10.11.2010