我该如何告诉Spring Boot可执行jar使用哪个主类?
Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.0.1.RELEASE:repackage failed: Unable to find a single main class from the following candidates  我的项目有一个main方法不止一个类。 如何告诉Spring Boot Maven插件应该使用哪个类作为主类? 
在你的pom中添加你的开始类:
 <properties> <!-- The main class to start by executing java -jar --> <start-class>com.mycorp.starter.HelloWorldApplication</start-class> </properties> 
对于那些使用Gradle(而不是Maven)的人:
 springBoot { mainClass = "com.example.Main" } 
如果你不使用spring-boot-starter-parent pom,那么从Spring文档 :
 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.1.3.RELEASE</version> <configuration> <mainClass>my.package.MyStartClass</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> 
如果你在你的pom中使用spring-boot-starter-parent,你只需在你的pom中添加以下内容:
 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 
然后做你的mvn包。
看到这个spring文档页 。
这里一个非常重要的方面是提到目录结构必须是src / main / java / nameofyourpackage
我在pom.xml中尝试了下面的代码,它为我工作
 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>myPackage.HelloWorld</mainClass> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <executable>D:\jdk1.8\bin\javaw.exe</executable> </configuration> </plugin> </plugins> 
 我已经重命名了我的项目,它仍然在构buildpath上find旧的Application类。 我把它移到“build”文件夹中,一切都很好。 
 自Spring Boot 1.5以来,您可以完成忽略pom或build.gradle中容易出错的string字面值。 重新包装工具(通过Maven或Gradle插件)将为您select一个用@SpringBootApplication注解的@SpringBootApplication 。  (有关详细信息,请参阅此问题: https : //github.com/spring-projects/spring-boot/issues/6496 ) 
 我用gradle包装gradlew代替gradle并为我工作。