Нужен ли тип упаковки «pom», когда не используется агрегация проектов (многомодульная)?
Я хочу наследовать зависимости (родителя)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 правильно?