Maven и версия баночки в финальном артефакте - PullRequest
2 голосов
/ 24 апреля 2010

Я новичок в maven 2, и у меня проблема с версией jar в моем проекте. В моем pom.xml объявлена ​​следующая зависимость:

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.1</version>
</dependency>

Но когда я строю свою войну, я получаю версию 1.0.3 этого артефакта. Как это возможно !? Кроме того, версия 1.1.1 доступна в моем хранилище.

Как посмотреть откуда?

Я новый сопровождающий этого проекта. Родительский помол объявляет эту версию, помошник войны наследуется от помошника родителя.

1 Ответ

2 голосов
/ 24 апреля 2010

Но в моей войне я нахожу версию 1.0.3. Как это возможно? (...) Как увидеть, откуда это?

Скорее всего, вы получаете эту зависимость транзитивно (то есть у вас есть зависимость от артефакта, для которого в качестве зависимости используется commons-logging-1.0.3.jar, и вы получаете его от этого артефакта). Чтобы проверить, откуда оно взято, вы можете распечатать «дерево зависимостей» с помощью Maven Dependency Plugin (также может находить конфликты ):

mvn dependency:tree

Теперь, чтобы решить проблему и управлять версиями, используемыми в транзитивных зависимостях, можно было бы объявить вашу зависимость в элементе dependencyManagement:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency>
  </dependencies>
</dependencyManagement>
...