You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Maven无法找到spring-boot-devtools依赖,是否需添加仓库地址?

解决Spring Boot DevTools依赖找不到的问题

嘿,先给你个明确结论:一般情况下不需要额外添加仓库URI,Spring Boot的官方依赖(包括devtools)都托管在Maven Central和Spring官方仓库里,正常的Maven配置应该能自动拉取到。你遇到找不到依赖的问题,大概率是其他环节出了问题,我给你列几个排查和解决的方向:

1. 检查Spring Boot版本的依赖管理

spring-boot-devtools是Spring Boot生态的一部分,它的版本必须和你的Spring Boot核心版本保持一致。如果你的pom.xml没有通过spring-boot-starter-parent继承版本,也没有用dependencyManagement统一管理Spring Boot版本,那你必须手动指定devtools的版本号,比如:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <version>2.7.15</version> <!-- 替换成你实际使用的Spring Boot版本 -->
    <optional>true</optional>
    <scope>runtime</scope>
</dependency>

如果已经继承了parent,版本会自动同步,不用手动写,这时候检查parent的配置是否正确:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.15</version> <!-- 你的Spring Boot版本 -->
    <relativePath/> <!-- 从远程仓库拉取,无需本地路径 -->
</parent>

2. 检查Maven的仓库配置

如果你的Maven settings.xml里配置了镜像,要确保镜像没有屏蔽Maven Central或者Spring仓库。比如国内常用的阿里云镜像已经包含了这些仓库,但如果是私有镜像环境,可能需要手动把Spring仓库添加到pom.xml中:

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>

另外,检查settings.xml的<mirrors>节点,确保镜像的<mirrorOf>central或者*,不要只限定私有仓库。

3. 清理Maven缓存并强制更新

有时候本地Maven缓存的依赖数据损坏,执行以下命令强制清理并更新依赖:

mvn clean install -U

-U参数会强制Maven更新依赖元数据和快照,解决缓存导致的依赖找不到问题。

4. 补充:实现静态资源强制重载的额外配置

搞定依赖问题后,要实现静态资源的实时重载,还需要做这些配置:

  • application.properties中添加:
    spring.web.resources.chain.cache=false
    spring.web.resources.cache.period=0
    spring.devtools.restart.additional-paths=src/main/resources/static
    
  • 如果用IntelliJ IDEA开发,还要开启自动编译:
    • 打开Settings > Build, Execution, Deployment > Compiler,勾选Build project automatically
    • Ctrl+Shift+A打开Registry,找到compiler.automake.allow.when.app.running并勾选

内容的提问来源于stack exchange,提问作者ciro

火山引擎 最新活动