mvn spring-boot:运行 vs 运行

mvn spring-boot:run vs Run

我正在 intelliJ 上使用 livereload 测试 spring-boot-devtools。 我有一个工作正常的简单 SpringBootApplication。

当我从 maven 命令 "mvn spring-boot:run" 启动应用程序时,除了 livereload 服务器没有启动外,一切正常。控制台上未出现任何消​​息,并且 chrome 扩展显示无法连接到 livereload 服务器的错误。

如果我用(右慕斯 button/Run Application.java)启动应用程序,即使是 livereload 服务器也能正常工作。消息出现在控制台上,浏览器能够连接到 livereload 服务器。

从右边的摩丝启动应用程序button/RunApplication.java

控制台消息

2016-07-13 16:39:47.947  INFO 10440 --- [  restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-07-13 16:39:48.026  INFO 10440 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2016-07-13 16:39:48.077  INFO 10440 --- [  restartedMain] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-07-13 16:39:48.145  INFO 10440 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8090 (http)

从 mvn 命令启动应用程序 "mvn spring-boot:run"

Chorme 扩展消息:

Could not connect to LiveReload server. Please make sure that a compatible LiveReload server is running. (We recommend guard-livereload, until LiveReload2 comes to your platform.)

控制台消息。 看到没有显示消息 LiveReload 服务器在 运行 端口....

2016-07-13 16:38:56.749  INFO 6924 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-07-13 16:38:56.852  INFO 6924 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-07-13 16:38:56.898  INFO 6924 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8090 (http)

为什么 maven 命令不启动 livereload 服务器?

您需要告诉 Maven 为您的应用程序分叉一个单独的 JVM 运行,而不是 运行与 Maven 在同一个 JVM 中:

$ mvn spring-boot:run -Dfork=true