Maven неявные «предоставленные» зависимости не отображаются в «зависимости: дерево» - PullRequest
5 голосов
/ 22 марта 2011

Коллега пытается создать новый весенний проект. Проект явно зависит от Spring-Security, которая в свою очередь (неявно) зависит от wss4j. При запуске тестов у него возникает проблема с отсутствующим классом.

Мы отследили отсутствующий класс по оси-saaj, «предоставленной» области видимости wss4j. Когда я запускаю цель dependency:tree maven, она не указывается как зависимость его проекта.

Мое понимание слова «предоставлено» таково: оно решено Maven для сборки, но не включено в поставляемый продукт или не предоставлено Maven (на пути к классам) для любых фаз «запуска» (запуска тестов или запуска самого приложения). через Maven).

Таким образом, если зависимость «предоставлена» неявна для вашего проекта, Maven будет полностью ее игнорировать, поскольку на самом деле она не создает результат, зависящий от «предоставленного» артефакта, и вы сами должны предоставить его для выполнения. время.

Я протестировал и dependency:tree перечисляет предоставленные зависимости, если они являются явными зависимостями вашего проекта, но не, если они находятся ниже в дереве зависимостей.

Я сказал ему, чтобы он пока включал зависимость как явную (с областью действия «время выполнения»), но, очевидно, это вызовет проблемы в полной среде выполнения (она не ограничена областью действия «ничего»), но нам нужно знать зависимости, чтобы явно включить их. Кто-нибудь знает какой-нибудь способ получить полный список зависимостей для проекта?

Спасибо

PS. Я знаю, что мог бы также заставить его явно полагаться на 'axis-saaj' с областью действия 'test', но это не проблема, список зависимостей есть!

PPS. мы используем Maven 3 для этого

PPPS. Я не включил здесь какой-либо текст пом, потому что это будет слишком долго. В этом можно убедиться, создав проект явной зависимости от (groupId) org.springframework.ws, (artifactId) spring-ws-security, (версия) 2.0.0.RELEASE.

Ответы [ 2 ]

2 голосов
/ 13 августа 2011

Вы проверяли, является ли эта axis-saaj зависимость также optional=true?

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

1 голос
/ 13 августа 2011

mvn dependency:tree и mvn dependency:list дают "полный список зависимостей", который вы ищете.Как вы, кажется, правильно понимаете, зависимости ваших зависимостей от заданного объема не подходят для «переходности», из-за отсутствия лучшего слова и, следовательно, не считаются зависимостью вашего проекта.Вы, кажется, правильно понимаете ситуацию, поэтому я не уверен, что еще вы спрашиваете.Попробуйте задать некоторые конкретные вопросы и / или прочитать основы транзитивных зависимостей , в частности таблицу, расположенную немного дальше по странице, которая показывает, что предоставляемые зависимости никогда не включаются в транзитивность.

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