Can't use classes from different Maven modules
Your parent pom has packaging type pom
, this is not jar
. This is special aggregator module. All java code should be located in jar
modules.
Module with packaging type pom
cant generate artifacts like jar, war or ear.
Maven by Example - The Simple Parent Project
The parent project doesn’t create a JAR or a WAR like our previous projects; instead, it is simply a POM that refers to other Maven projects.
To use Classes from one module in other module use maven dependency.
Typical project looks like this:
* administration project (pom)
* registration (jar)
* portal (war)
amenoire
Updated on June 23, 2022Comments
-
amenoire almost 2 years
Need to create a multi module maven project which consist of a registration module and main project. The problem is that it's impossible to use classes declared in different modules.
e.g.: I have a
ParentClaz
in my parent's src/main/java dir andChildClaz
in child's src/main/java dir. Right now it's not possible to use neitherParentClaz
inChildClaz
nor vice versa.The project's structure looks like this:
+-- AdminPortal <- parent root +-- registration <- child root -- pom.xml <- child pom -- pom.xml <- parent pom
my AdminPortal POM:
<modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>AdminPortal</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>AdminPortal</name> <url>http://maven.apache.org</url> <modules> <module>registration</module> </modules>
Here's child POM:
<modelVersion>4.0.0</modelVersion> <parent> <groupId>com.example</groupId> <artifactId>AdminPortal</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.example.AdminPortal</groupId> <artifactId>registration</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>registration</name> <url>http://maven.apache.org</url>
How can this problem be solved?
-
amenoire over 10 yearsSo you mean I should declare my main project as jar/war and make some AdminPortal-parent module, which includes AdminPortal and registration module?
-
MariuszS over 10 yearsyes, your parent pom can have many modules like jar and war. All your source code should be located in modules
-
amenoire over 10 yearsThank you, I'll give it a try.
-
MariuszS over 10 yearsThe problem is code located inside parent pom module :) You cant attach source code from pom to jar module.
-
amenoire over 10 yearsSure, I will mark it as a solution some minutes later (system doesn't let to choose the right answer faster then 10-15 minutes)
-
MariuszS over 10 yearsYou can put code in parent as OP, but this is useless ofcours :) Read the question: I have a ParentClaz in my parent's src/main/java dir and ChildClaz in child's src/main/java dir.