如果你想获得 这两个 好处-即独立的可执行文件嵌入Tomcat的战争 ,并 在外部Tomcat的正常战争展开的-你需要有main方法的类。所以,
- 在Application.java中启用main()方法。
- 配置
spring-boot-maven-plugin
为与主类一起指定该类(如果您有主类,Spring还是应该找到它,但是我想很明确):<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot-version}</version> <configuration> <mainClass>the.package.of.Application</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> spring-boot-starter-tomcat
使用provided
范围删除pom中的依赖项。Spring Boot神奇地知道如何启用/禁用嵌入式Tomcat。
这样,您只需通过将Application.java类作为普通Java应用程序运行即可从IDE启动Spring应用程序,并构建一个既可以独立执行又可以像往常一样在外部Tomcat中部署的war文件。
我目前正在使用Spring Boot 1.0.1.RELEASE通过这种设置来构建REST API,并且在所有三种模式下均能很好地工作。



