Я хочу наследовать зависимости (родителя) pom.xml
в дочернем проекте в Maven 2.2.1; т.е. использовать наследование проекта. Кажется, что в этом случае необходимо изменить тип упаковки по умолчанию от jar
до pom
.
Однако, документация Maven2 указывает, что тип упаковки pom
необходим для агрегации проекта, то есть многомодульные проекты, которые используют подмодули, но не для наследования проекта?
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>example</groupId>
<artifactId>example-parent</artifactId>
<version>1</version>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
</project>
<project>
<parent>
<groupId>example</groupId>
<artifactId>example-parent</artifactId>
<version>1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>example</groupId>
<artifactId>example-child</artifactId>
</project>
Но если вы вызываете Maven (например, mvn clean
) с указанной выше конфигурацией, вы получаете сообщение об ошибке:
Project ID: example:example-child
Reason: Parent: example:example-parent:jar:1
of project: example:example-child has wrong packaging: jar.
Must be 'pom'. for project example:example-child
С другой стороны, со следующей записью:
<project>
...
<packaging>pom</packaging>
...
</project>
в родительском pom.xml
, Maven может быть выполнен без каких-либо ошибок.
Правильно ли это поведение Maven?