首页 文章

IntelliJ不会终止使用gradle构建的Spring Boot应用程序

提问于
浏览
41

我在Linux上使用IntelliJ 13.1并尝试按照示例http://spring.io/guides/gs/spring-boot/构建基本的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'.

我仍然可以访问配置端口上的tomcat实例 . 只关闭IntelliJ会破坏该过程 .

我搜索了这个主题但找不到任何合理的答案 . 我想知道它是不是

  • gradle问题(使用gradle包装器版本1.11)

  • Linux问题(Ubuntu 12.04)

  • IntelliJ问题(IDEA 13.1.2)

  • Spring Boot问题(尝试了从1.0.0.RELEASE到1.1.0.M2的不同版本)

2 回答

  • 19

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

    当您从IntelliJ的Gradle集成中运行 bootRun 然后按stop时,应用程序将继续按照您的提及运行 .

    但是,如果您使用命令行并运行 gradle bootRun 然后使用Cntrl C,应用程序就会停止正常 .

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

    如果您需要能够轻松调试应用程序,那么您需要做的就是运行具有 main 方法的Java(或Groovy)类,因为它是运行Spring Boot应用程序的最简单方法!感谢Spring Boot!

    当然,您可以继续使用Gradle执行诸如运行所有测试或创建打包应用程序之类的任务 .

  • 0

    我知道这个答案已经得到了回答,但由于这是在谷歌搜索时的第一个主题,我想在分享一个替代方案,我去了,并没有找到我读过的其他主题 .

    我对 terminate 的主要问题是,我总是在我的课程中改变了一些东西,我需要重新启动服务器,它会失败,所以我有时需要服务器 stop/start .

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

    只要类路径上的文件发生更改,使用spring-boot-devtools的应用程序就会自动重启 .

    唯一的问题是,在Intellij上,如果单击 Build > Make Project ,它只会 makes 项目,因此要么将其设置为自动构建,要么记得单击 make .

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

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

相关问题