不使用项目聚合(多模块)时是否需要打包类型'pom'?

ToK*_*ToK 13 inheritance maven-2 packaging pom.xml

我想继承pom.xmlMaven 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>
Run Code Online (Sandbox Code Playgroud)

但是如果你mvn clean用上面的配置调用Maven(例如),你会收到一个错误:

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
Run Code Online (Sandbox Code Playgroud)

另一方面,使用以下条目:

<project> 
 ... 
 <packaging>pom</packaging>
 ... 
</project>
Run Code Online (Sandbox Code Playgroud)

在父级中pom.xml,Maven可以在没有任何错误的情况下执行.

Maven的这种行为是否正确?

Pas*_*ent 11

POM参考继承部分中所述:

包装类型需要pom用于父项聚合(多模块)项目.

所以Maven的行为对我来说似乎是正确的(错误信息很好地自我解释).