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
我正在 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