Live重装不能在Spring启动devtools中工作

时间:2018-03-20 14:06:03

标签: java spring spring-mvc spring-boot

我在spring boot应用程序中使用此依赖项:

prototype

documentation说:

  

默认情况下,更改/ META-INF / maven中的资源,   / META-INF /资源,/资源, / static ,/ public或/ templates   不会触发重启,但会触发实时重新加载

live reload documentation说:

  

spring-boot-devtools模块包含一个嵌入式LiveReload服务器   可用于在资源启动时触发浏览器刷新   改变。 LiveReload浏览器扩展程序可免费使用   来自livereload.com的Chrome,Firefox和Safari。

现在,我正在使用Maven,我的静态文件夹位于src / main / resources下,所以我的文件夹结构是:

的src /主/资源/静态/ index.html中

这是我的index.html文件中的内容:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

我使用的是chrome浏览器,但我没有在chrome中使用任何实时重新加载浏览器扩展程序。

我使用此Powershell命令运行应用程序(因为我使用的是spring boot maven插件):

<!DOCTYPE HTML>
<html>
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p>HI THERE! Get your greeting <a href="/greeting">here</a></p>
</body>
</html>

这将在localhost:8080上启动服务器,并在网页中显示index.html的内容。

但是,当我在Eclipse IDE中对index.html进行更改并保存文件,然后刷新浏览器页面时,我没有看到新的更改。

为什么现场重装并不适合我?我做错了什么?

1 个答案:

答案 0 :(得分:2)

从IDE运行应用程序不是使Developer工具正常工作的约束。 你的问题出在其他地方。

这些命令:

mvn clean package; 
java -jar target\project-name-version.jar

表示您不使用spring-boot maven插件来运行您的应用程序 您运行完全打包的应用程序的autobootable jar。 因此,documentation

所述的Spring Boot devtools被禁用
  

完全运行后,开发人员工具会自动停用   打包应用程序。如果您的应用程序是从java -jar启动的   或者,如果它是从一个特殊的类加载器启动的,那么它就被考虑了   一个“生产应用程序”。将依赖项标记为可选是a   阻止devtools传递的最佳实践   到使用您的项目的其他模块。 Gradle不支持   可选的依赖项开箱即用,所以你可能想看看   在propdeps-plugin。

要在爆炸/开发模式下从命令行运行应用程序,mvn clean package不是必需且无助的 只需执行mvn spring-boot:run

即可