2015-05-19 3 views
1

В моем проекте есть несколько зависимостей (действительно много), и я добавляю их в зависимость. Но я не хочу никакой транзитивной зависимости, которая будет вне моего контроля (maven приносит мне почти три раза то, что мне нужно). Я попытался запретить переходную зависимость таким образом:Отключить транзитивные зависимости, не работающие

<exclusions> 
     <exclusion> 
      <groupId>*</groupId> 
      <artifactId>*</artifactId> 
     </exclusion> 
</exclusions> 

Но после того, как я сделал МВН пакет, транзитивные зависимости все еще загружены и добавлены в мой пакет построен. Вот каротаж maven:

[DEBUG] Dependencies for project:com.XXX.XXX: 
org.apache.XXX 
org.apache.XXX.YYY 
... 
[DEBUG] Resolving project dependencies transitively: 
[DEBUG] org.com.XXX.yyy 
[DEBUG] org.apache.ZZZ 
... 
[DEBUG] Adding artifact: org.apache.ZZZ with file: ${file name} to assembly location: lib/${file name}.jar 
... 

Так что это не то, что я хочу. Я хочу, чтобы либо maven НЕ автоматически загружал транзитивные зависимости, либо не добавлял их в мой «пакет mvn».

Цените любую помощь.

+0

Дубликат http://stackoverflow.com/questions/547805/exclude-all-transitive-dependencies-of-a-single-dependency – BadZen

+0

Этот ответ просто не работает. Пожалуйста, прочитайте описание вопроса перед тем, как пометить его как «duplicate» – mattsun

+0

«Для maven 2 я бы рекомендовал создать собственный пользовательский pom для зависимостей, который имеет ваш . Для проектов, которые должны использовать эту зависимость, задайте зависимость к вашей пользовательской вместо типичного артефакта ». – BadZen

ответ

0

Итак, вот решение, которое у меня есть. Maven по-прежнему хватается за транзитивную зависимость. То, что я сделал, это включить только баночки, которые я хочу на этапе сборки. В файле конфигурации сборки, я вручную добавить баночки я хочу в

<dependencyset> 
    <includes> 
     <include>com.XXX:XXX:jar:2.6.0</include> 
    </includes> 
<dependencyset> 

Сравните с тем, что я не хочу (несколько сотен банок транзитивным зависимостей), это более практично, чтобы добавить то, что я хочу. Это хорошо решает проблему.