IntelliJ不会终止使用Gradle构buildSpring Boot应用程序

我在Linux上使用IntelliJ 13.1,并尝试按照示例http://spring.io/guides/gs/spring-boot/构build基本的REST应用程序

当我从IntelliJ执行目标bootRun时,集成tomcat服务器启动,一切工作正常。

10:09:35: Executing external task 'bootRun'... :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :findMainClass :bootRun 

但是停止执行不会影响gradle任务:

 10:11:40: External task execution finished 'bootRun'. 

我仍然可以访问configuration的端口上的tomcat实例。 只有closuresIntelliJ才会破坏进程。

我search了这个话题,但找不到任何合理的答案。 我想知道这是不是一个

  • gradle问题(使用gradle wrapper版本1.11)
  • Linux问题(Ubuntu 12.04)
  • IntelliJ问题(IDEA 13.1.2)
  • Spring Boot问题(尝试从1.0.0.RELEASE到1.1.0.M2的不同版本)

我很确定这是一个IntelliJ问题,因为:

当您从IntelliJ的Gradle集成运行bootRun ,然后按停止,应用程序继续运行,如您所述。

但是,如果您使用命令行并运行gradle bootRun ,然后使用Cntrl + C ,应用程序停止就好了。

请注意,我的设置是Windows 7,IntelliJ 13.1.3,Gradle 1.12和Spring Boot 1.1.0.M2。

如果您需要能够轻松地debugging您的应用程序,那么您只需运行具有main方法的Java(或Groovy)类,因为它是运行Spring Boot应用程序最简单的方法! 荣誉为春季启动!

当然,您可以继续使用Gradle执行任务,例如运行所有testing或创build打包的应用程序。

我知道这个答案已经回答了,但是因为这是Googlesearch的第一个话题,所以我想分享一个我select的另一个select,在我读的其他主题中没有find。

我这个terminate主要问题是,我总是改变了我的类,我需要重新启动服务器,它会失败,所以我有时需要stop/start服务器。

为了避免这种情况,我使用了spring-boot-devtools 。 基本上:

每当类path上的文件发生变化时,使用spring-boot-devtools的应用程序都会自动重启。

唯一的问题是,在Intellij上,如果单击Build > Make Project ,那么它只会Build > Make Project ,所以要么将其设置为自动Build > Make Project ,要么记得单击make

要使用,只需将依赖项添加到您的build.gradle / pom.xmlcompile('org.springframework.boot:spring-boot-devtools')

我发现这在开发中非常有用。