Я хочу наследовать зависимости (родителя) pom.xml
в дочернем проекте в Maven 2.2.1; т. е. использовать наследование проекта. Кажется, что в этом случае необходимо изменить тип упаковки по умолчанию от jar
до pom
.Необходим ли тип упаковки «pom», если не используется агрегация проекта (мультимодуль)?
Однако, не the Maven2 documentation указывает, что для агрегации проекта необходим тип упаковки 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?