我在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 回答
我很确定这是一个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执行诸如运行所有测试或创建打包应用程序之类的任务 .
我知道这个答案已经得到了回答,但由于这是在谷歌搜索时的第一个主题,我想在分享一个替代方案,我去了,并没有找到我读过的其他主题 .
我对
terminate
的主要问题是,我总是在我的课程中改变了一些东西,我需要重新启动服务器,它会失败,所以我有时需要服务器stop/start
.为避免这种情况,我使用spring-boot-devtools . 基本上:
唯一的问题是,在Intellij上,如果单击
Build > Make Project
,它只会makes
项目,因此要么将其设置为自动构建,要么记得单击make
.要使用,只需将依赖项添加到
build.gradle / pom.xml
:compile('org.springframework.boot:spring-boot-devtools')
我发现这在开发中非常有用 .