2013-11-18 1 views
0

Я создаю ухо, используя maven <packaging>ear</packaging> тег. Одна из заявленных зависимостей заключается в добавлении транзитивной зависимости к сгенерированному уху. Есть ли способ исключить это в сгенерированном ухе?Изучение некоторых сторонних банку в ухе с использованием maven

То есть мой EAR pom имеет зависимость от модуля_A, это где-то вдоль дерева имеет зависимость от модуля_X, который становится упакованным в сгенерированное ухо.

Есть ли способ не включать это (module_X) в ухо?

Непосредственно добавление тега excludes для модуля_X в моем помпе не работает.

+0

Если зависимость объявлена ​​в родительском ПОМ не используется всеми своими детьми, вы, вероятно, следует пересмотреть, должен ли он быть объявлен в этом родителю , Или это действительно зависимость, но вы просто не хотите, чтобы она упакована внутри EAR, потому что она предоставляется? –

ответ

1

Все возможно с maven. Вы просто должны simly добавить тег исключения в ПОМ уха, что-то вроде этого:

<dependency> 
    <groupId>my.group</groupId> 
    <artifactId>module_A</artifactId> 
    <exclusions> 
     <exclusion> 
     <groupId>my.group</groupId> 
     <artifactId>module_X</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
+0

Я пробовал это, не работал. – cmn

+1

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

+0

Он работает, я ошибся, указав, что артефакт I модуля должен быть исключен. (Используется xx_1.0.1 вместо xx_1.0.2). – cmn

0

Если зависимость области видимости, как compile в родительском ПОМ и вам нужно быть provided в вашем EAR, вам можно использовать управление зависимостей в детской POM, где вам нужно, чтобы изменить его масштаб:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.group</groupId> 
      <artifactId>transitive-dependency</artifactId> 
      <version>1.0</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
Смежные вопросы