Home > Back-end >  Could not find or load main class (module)
Could not find or load main class (module)

Time:06-27

I'm trying to create a jar with a main class that's located in one of my two modules. However, the created jar doesn't contain my specified main class.

My project structure is like this MyProject

  • first-module
    • src > main > java > com.example > MyClass
    • pom.xml
  • second-module
    • src > main > java > com.example.util > Lots of classes
    • pom.xml
  • pom.xml

I make use of the maven-assembly-plugin to create this jar. The snippet below is located in the project's root pom.xml

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.example.MyClass</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

This creates the jar inside MyProject/target folder. But when inspecting this jar with the jar tvf <file> command, I only see the Manifest.mf file inside of it. What would be the cause of this class located in first-module not appearing in the jar?

CodePudding user response:

For people in the future: it turns out I needed to use the jar file created in the target folder of the first-module. Before I realised this, I kept using the jar created in the target folder located in the root folder. In the first-module is MyClass located. And thus the jar from first-module's target folder is able to find and load the specified main class in my root pom.xml.

  • Related