Исключить все переходные зависимости одной зависимости - PullRequest
201 голосов
/ 14 февраля 2009

В Maven2, чтобы исключить одну транзитивную зависимость, я должен сделать что-то вроде этого:

<dependency>
  <groupId>sample.group</groupId>
  <artifactId>sample-artifactB</artifactId>
  <version>1</version>
   <exclusions>
     <exclusion>
       <groupId>sample.group</groupId>
       <artifactId>sample-artifactAB</artifactId>
     </exclusion>
   </exclusions>
</dependency>

Проблема этого подхода заключается в том, что я должен делать это для каждой переходной зависимости, вносимой sample-artifactB.

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

Ответы [ 13 ]

1 голос
/ 04 октября 2011

В симуляционной проблеме у меня была объявлена ​​нужная зависимость с предоставленной областью действия. При таком подходе транзитивные зависимости выбираются, но НЕ включаются в фазу пакета, что вам и нужно. Мне также нравится это решение с точки зрения обслуживания, потому что для обслуживания не требуется ни pom, ни пользовательского pom, как в решении whaley; вам нужно только указать конкретную зависимость в контейнере и все готово

0 голосов
/ 24 июня 2013

Используйте последнюю версию Maven в вашем классе. Он удалит дубликаты артефактов и сохранит последний артефакт Maven.

0 голосов
/ 19 мая 2009

Вы можете использовать исключение, но вы должны вручную перечислить каждую зависимость, которую хотите исключить…

<dependency>
  <groupId>sample.group</groupId>
  <artifactId>sample-artifactB</artifactId>
  <version>1</version>
   <exclusions>
     <exclusion>
       <groupId>sample.group</groupId>
       <artifactId>sample-artifactAB</artifactId>
     </exclusion>
   </exclusions>
</dependency>
...