I\'ve created a bare-bone Maven project, completely empty except the pom.xml
.
With this pom (note that parent
element is commented-out):
Its because Spring-Boot is adding some extra maven configuration to your project. If you are using eclipse, there's a Tab called: 'Effective POM'.
From this tab you can see that it adds this snippet below:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${start-class}</mainClass>
</configuration>
</plugin>
So when you run it with spring-boot as parent, it looks for the value of ${start-class}
, which resolves to empty unless you defined it, that's when you see the error about not having a value for the mainClass
parameter.
Add this to your project:
<properties>
<start-class>com.Test</start-class>
</properties>
Then run it: clean compile exec:java
[INFO] --- exec-maven-plugin:1.2.1:java (default-cli) @ springboot-test --- **********test************** [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.388 s [INFO] Finished at: 2014-12-05T15:25:05-06:00 [INFO] Final Memory: 17M/231M [INFO] ------------------------------------------------------------------------
You can also provide the value for the start-class
property on the command line, this works even if you didn't define it inside your pom file:
mvn exec:java -Dstart-class=com.Test