Chcę dziedziczyć zależności (rodzica) pom.xml
w projekcie potomnym w Maven 2.2.1; tj. dziedziczenie projektu. Wygląda na to, że w tym przypadku należy zmienić domyślny typ opakowania z jar
na pom
.Czy opakowanie typu "pom" jest potrzebne, gdy nie stosuje się agregacji projektu (wielomodułu)?
Jednak czy numer pom
nie jest wymagany do agregacji projektu, tzn. Projekty wielomodułowe, które używają submodułów, ale nie do dziedziczenia projektu?
<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>
Ale jeśli zadzwonisz Maven (np mvn clean
) z powyższej konfiguracji, pojawi się błąd:
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
na innych drugiej strony, z następującego wpisu:
<project>
...
<packaging>pom</packaging>
...
</project>
w rodzicu pom.xml
, Maven można wykonać bez żadnego błędu.
Czy to zachowanie Mavena jest prawidłowe?