Отказ от ответственности
(Первоначально я задал вопрос очень подробно здесь . Я привел его здесь, поскольку список рассылки maven-users
затих на этом вопросе.) (не просто еще один вопрос новичка)
Ссылка
Мой справочный материал http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management;, пожалуйста, дайте мне знать в этом обсуждении, если это устарело или неправильно.
Вопрос
В этом документе есть раздел, который начинается с "Второй, и очень важный ...".Далее я буду ссылаться на проекты этого раздела A
и B
и извлеку из них.
В этом разделе вы увидите, что в проекте A
есть раздел <dependencyManagement>
, который- среди прочего - определяет артефакт c
как имеющий область действия compile
:
<!-- In A's pom.xml; condensed for brevity -->
<dependencyManagement>
<dependency>
<groupId>test</groupId>
<artifactId>c</artifactId>
<version>1.0</version>
<scope>compile</scope> <!-- look: compile scope -->
</dependency>
</dependencyManagement>
Затем вы увидите pom.xml
для проекта B
, который (a) наследуется отПроект A
(таким образом наследуя его dependencyManagement
раздел) и (b) устанавливает зависимость от артефакта c
, не указывая его version
.Вы также заметите, что зависимость от артефакта c
переопределяет область действия c
на runtime
, а не compile
:
<!-- In B's pom.xml, whose parent is A's pom.xml (above); condensed for brevity -->
<dependencies>
<dependency>
<groupId>test</groupId>
<artifactId>c</artifactId>
<scope>runtime</scope> <!-- look: runtime scope -->
</dependency>
</dependencies>
Опять же, вы заметите, что нет *Элемент 1040 *, но есть элемент <scope>runtime</scope>
.
Моя интерпретация этого заключается в том, что когда все будет сказано и сделано, B
будет зависеть от версии 1.0
артефакта c
в runtime
области, а не compile
области.
Это правильно? Моя maven-ear-plugin
ошибка основывается на том, что это ожидаемое поведение.Это не то, что происходит, когда maven-ear-plugin
создает файл .ear
.
Далее, если это правильно, я бы также ожидал, что если бы у артефакта c
были транзитивные зависимости runtime
, они были бы доступны.* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *. * * * * * * * * * * *. * * * * * *
runtime
.