我在spring boot应用程序中使用此依赖项:
prototype
默认情况下,更改/ META-INF / maven中的资源, / META-INF /资源,/资源, / static ,/ public或/ templates 不会触发重启,但会触发实时重新加载。
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进行更改并保存文件,然后刷新浏览器页面时,我没有看到新的更改。
为什么现场重装并不适合我?我做错了什么?
答案 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