Если включена зависимость, почему эта зависимость не может быть унаследована с той же областью, поэтому мне не нужно ее объявлять?
Это is унаследовано с тем же объемом. Учитывая следующие родительская pom.xml
:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow.Q3597684</groupId>
<artifactId>root</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Q3597684 - Root</name>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
И следующее pom.xml
, который наследует от корня артефакта:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>root</artifactId>
<groupId>com.stackoverflow.Q3597684</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>child</artifactId>
<packaging>war</packaging>
<name>Q3597684 - Child</name>
<dependencies/>
</project>
Запуск mvn dependency:tree
от ребенка дает следующий вывод:
$ mvn dependency:tree[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Q3597684 - Child
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.stackoverflow.Q3597684:child:war:1.0-SNAPSHOT
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] \- junit:junit:jar:3.8.1:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
Предоставленный servlet-api
есть, как и ожидалось.
Вы, может быть, ошибаетесь, используя раздел dependencyManagement
?
Я не объявляю свои модули ребенок module . Я не делаю этого, потому что я знаю только о внутренних детях, а не о внешних проектах. –
2010-08-30 13:21:43
@Walter Это не важно (мой родительский pom является агрегирующим помпом, потому что я использовал архетипы для настройки этого проекта), важной частью является элемент ''. Вы можете использовать наследование без агрегации, и это не меняет мой ответ. Но я обновлю его, чтобы показать наследование только и избежать путаницы. –