Spring Boot – Which main class to start
If Spring Boot project contains multiple main classes, Spring Boot will fail to start or packag for deployment.
Terminal
$ mvn package
#or
$ mvn spring-boot:run
Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:run (default-cli)
Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:run failed:
Unable to find a single main class from the following candidates
[com.mkyong.Test, com.mkyong.SpringBootWebApplication] -> [Help 1]
Maven example
1.1 Define single main class via start-class
properties
pom.xml
<properties>
<!-- The main class to start by executing java -jar -->
<start-class>com.mkyong.SpringBootWebApplication</start-class>
</properties>
1.2 Alternatively, define the main class in the spring-boot-maven-plugin
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.mkyong.SpringBootWebApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
Which is the main class for a spring application.
Should I use a common spring boot main class in a library that my other spring microservices pull?
How does it pick if i just have one main class but i am not using the @SpringBootApplication annotation?
cool
I’m getting “java.lang.ClassNotFoundException” when try to run application with “mvn spring-boot:run” command
you should cut what class not found, that we can help to find the problem
The main class isn’t found for my case : java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
Thank you. Great