Я хочу наследовать зависимости (родителя) 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?