彻底解决Maven依赖报红:从原理到实战的系统性排查指南
1. 问题引入为什么你的Maven依赖总是“一片红”如果你是一个Java开发者尤其是使用IntelliJ IDEA作为主力IDE那么“Maven依赖报红”这个场景你一定不陌生。项目刚拉下来或者更新了某个依赖版本甚至只是重启了一下IDEA右侧的Maven工具窗口里某个依赖项旁边就亮起了刺眼的红色波浪线。点开pom.xml文件对应的依赖声明行也飘着红IDEA的提示语通常是“Cannot resolve symbol ‘xxx’”或者“Dependency ‘xxx’ not found”。这不仅仅是视觉上的不适它意味着你的代码无法正常编译相关的类无法导入整个开发流程被卡住。更让人头疼的是这个问题似乎有“传染性”和“复发性”——今天解决了明天可能又出现了这个项目解决了另一个项目又犯了。很多开发者包括我自己在早期都习惯于使用“三板斧”刷新MavenReimport、清理本地仓库Delete .m2/repository、重启IDEA。这招有时灵有时不灵不灵的时候就会陷入无休止的搜索和试错。实际上Maven依赖报红不是一个单一问题而是一个症状。它背后可能对应着网络问题、配置错误、仓库镜像失效、依赖冲突、IDEA自身索引紊乱等十几种不同的根因。盲目地使用“三板斧”就像生病了不管病因只吃退烧药可能暂时压住症状但病根未除迟早复发。今天我们就来系统性地拆解这个问题从原理到实操从常见场景到疑难杂症帮你建立一套完整的排查和解决思路真正做到“彻底解决”。2. 理解Maven依赖解析的核心机制要解决问题必须先理解问题是如何产生的。Maven依赖报红的本质是IDEA或者说背后的Maven核心无法根据你pom.xml中的坐标groupId, artifactId, version在配置的仓库中找到对应的jar包及其元数据主要是.pom文件。2.1 Maven的依赖查找链路当你执行mvn compile或IDEA自动刷新依赖时会发生以下一系列动作读取本地仓库Maven首先会检查本地仓库默认在用户目录下的.m2/repository。它会根据坐标生成一个路径例如com/google/guava/guava/32.1.3-jre/然后去这个路径下寻找guava-32.1.3-jre.jar和guava-32.1.3-jre.pom文件。如果找到且校验通过比如checksum匹配则直接使用解析成功。查询远程仓库如果在本地仓库没找到Maven会根据settings.xml和项目pom.xml中配置的仓库地址按顺序向远程仓库发起请求。它并不是直接下载jar而是先下载对应版本的.pom文件因为pom文件更小且包含了该依赖自身的依赖信息。下载成功后pom文件会被存入本地仓库的对应目录。下载构件Artifact获取到pom文件后Maven才会开始下载主要的构件通常是jar包同样存入本地仓库。构建依赖树与解决冲突所有依赖下载完毕后Maven会解析所有pom构建出一棵完整的依赖树。此时如果多个依赖引入了同一个库的不同版本比如A依赖了Guava 20.0B依赖了Guava 30.0Maven会应用“最近定义优先”、“最短路径优先”等规则来决定最终使用哪个版本即“依赖调解”。这个被选中的版本才是真正会被加入到项目classpath中的版本。IDEA索引与同步Maven命令行完成上述工作后IDEA需要将结果同步到自己的项目模型中。它会读取本地仓库中的jar包为其建立索引以便提供代码补全、跳转等功能。如果IDEA的索引过程出错或者其内部项目模型与Maven的实际状态不同步即使本地仓库里jar包完好IDEA也可能显示报红。2.2 IDEA在此过程中的角色IDEA并不是简单地调用Maven命令行。它集成了一个内嵌的Maven组件Bundled Maven来执行核心解析逻辑同时维护着自己的一套项目模型和索引。报红问题可能出现在上述链路的任何一个环节也可能出现在IDEA自身同步和索引的环节。因此我们的排查思路也必须覆盖这两条线。注意一个关键认知是“Maven命令行能编译通过”与“IDEA里不报红”是两个相关但独立的状态。前者说明依赖的物理jar包已就位且Maven解析逻辑通顺后者还需要IDEA正确识别并索引这些jar包。经常有开发者遇到命令行mvn clean install成功但IDEA里依然一片红的情况问题就出在IDEA这一侧。3. 系统性排查流程从简单到复杂当遇到依赖报红时建议遵循以下排查流程可以解决95%以上的问题。请务必按顺序进行避免做无用功。3.1 第一步检查IDEA的Maven基础配置这是最常见也是最容易忽略的起点。IDEA的Maven设置有多处如果配置不一致或指向错误就会导致各种诡异问题。打开设置File - Settings(Windows/Linux) 或IntelliJ IDEA - Preferences(macOS)。定位到Maven配置Build, Execution, Deployment - Build Tools - Maven。核对关键配置Maven home path这里决定了IDEA使用哪个Maven程序。通常建议使用“Bundled (Maven 3)”即可这是IDEA自带的兼容性最好。如果你指定了自定义的Maven请确保其路径正确且版本合适不要用太老或太新的实验版。User settings file这是最重要的配置之一。它指向你的settings.xml文件。这个文件里定义了你的本地仓库路径、远程仓库镜像、代理、认证信息等。务必确保这个路径是正确的。很多公司内网开发需要配置特殊的私服镜像都是在这个文件里。如果这里指向了一个错误的或空的settings.xmlIDEA就找不到正确的仓库地址。Local repository本地仓库路径。通常默认即可~/.m2/repository。如果你修改过请确认路径存在且有读写权限。应用并刷新修改任何配置后点击Apply然后强烈建议重启IDEA。之后在右侧Maven工具窗口点击那个蓝色的刷新图标Reimport All Maven Projects。实操心得我遇到过好几次同事的电脑上依赖死活拉不下来最后发现是他的User settings file路径里包含中文或特殊字符导致IDEA读取配置文件失败。还有一个常见情况是从别人那里拷贝了项目他的settings.xml里配置了特定的环境变量如${env.NEXUS_URL}而你的系统环境变量里没有设置导致配置实际为空。所以检查配置是第一步也是最重要的一步。3.2 第二步执行Maven强制更新与清理如果配置无误接下来尝试让Maven进行一次“干净”的重新解析。使用Maven命令行的“强制更新”模式 在IDEA中打开终端Terminal进入项目根目录包含pom.xml的目录执行以下命令mvn clean compile -U-U参数是--update-snapshots的简写但它实际效果是强制检查所有远程仓库的更新对于释放版Release依赖它会忽略本地缓存重新从远程下载元数据.pom文件这对于解决因仓库元数据损坏导致的问题非常有效。清理本地仓库的“lastUpdated”文件 有时Maven在下载依赖中断后会在本地仓库留下以.lastUpdated结尾的锁文件。这些文件会阻止Maven重新下载该依赖。你可以手动删除它们# 在命令行中进入本地仓库目录然后执行Linux/macOS find ~/.m2/repository -name *.lastUpdated -delete # Windows (PowerShell) Get-ChildItem -Path ~\.m2\repository -Filter *.lastUpdated -Recurse | Remove-Item更粗暴但有效的方法是直接删除整个本地仓库目录~/.m2/repository然后让Maven重新下载一切。但这样耗时较长建议先尝试删除lastUpdated文件。在IDEA中执行“Reimport”和“Generate Sources” 在右侧Maven工具窗口右键点击你的项目根模块依次选择Reload projectGenerate Sources and Update Folders For All Projects实操心得-U参数是我解决依赖问题最常用的命令它特别适用于依赖版本号没变但远程仓库里的内容实际有更新比如修复了错误的pom配置的情况。直接删整个.m2目录是终极手段但对于网络不好或者依赖很多的大型项目重新下载可能耗时几十分钟请谨慎使用。3.3 第三步深入分析具体的报错信息如果上述步骤无效我们就需要深入敌后查看更详细的错误日志。不要只看IDEA编辑器的红色波浪线要看Maven执行输出的具体错误。查看IDEA的Maven输出窗口 在IDEA底部栏找到“Maven”或“Build”工具窗口执行一次编译或刷新操作仔细阅读里面的错误日志。错误信息可能包含Could not transfer artifact ... from/to ... (Connection timed out)-网络问题或仓库地址不可达。Could not find artifact ... in ...-在配置的仓库中根本找不到这个构件。Failure to transfer ... from ... was cached in the local repository-本地仓库缓存了错误状态需要清理这就是上一步要删lastUpdated文件的原因。Missing artifact ...- 可能表示依赖的pom文件缺失或损坏。使用Maven的详细模式 在IDEA终端里使用-X参数运行Maven命令获取极其详细的调试信息。mvn clean compile -X这个输出会非常长但你可以搜索你报红的那个依赖的坐标如com.google.guava:guava看Maven在尝试从哪些仓库下载它以及下载请求的返回状态是什么404 Not Found, 401 Unauthorized等。这对于诊断仓库配置问题至关重要。手动检查本地仓库文件 根据报红依赖的坐标直接去本地仓库的对应目录下查看。目录是否存在目录下是否有.jar和.pom文件文件大小是否正常一个空的或几KB的jar/pom文件通常是下载不完整的标志是否存在.jar.lastUpdated或.pom.lastUpdated文件如果存在删除它们。尝试删除整个该依赖的目录然后重新刷新Maven。4. 针对特定场景的解决方案经过前三步的通用排查大部分问题应该已解决。如果问题依旧那么它可能属于以下一些特定场景。4.1 场景一依赖在中央仓库不存在或已被删除有些依赖特别是某些版本可能从未被发布到Maven中央仓库或者发布后因故被删除了。你的pom.xml里声明了它但全世界都找不到。排查方法访问 https://search.maven.org/ 或 https://mvnrepository.com/ 手动搜索你的依赖坐标groupId:artifactId:version。如果搜不到或者搜到但点进去发现该版本不存在那就证实了。解决方案更换版本查找该依赖的可用的其他版本。添加正确的仓库如果该依赖存在于某个特定的公共仓库如JCenter虽然已只读或公司私服你需要在pom.xml或settings.xml中显式添加该仓库的配置。本地安装如果你有该依赖的jar包可以使用mvn install:install-file命令将其安装到本地仓库。mvn install:install-file -Dfileyour-jar-file.jar -DgroupIdcom.example -DartifactIdmy-lib -Dversion1.0 -Dpackagingjar4.2 场景二依赖冲突导致“幽灵”报红这是最棘手的情况之一。依赖A引入了Lib-v1依赖B引入了Lib-v2。根据Maven的依赖调解规则最终Lib-v2被选中。但是你的代码中某个地方可能是通过反射或者另一个间接依赖期望使用Lib-v1中的某个类或方法而这个类或方法在Lib-v2中不存在、被移除或改了签名。这时IDEA的索引可能就会混乱在某些地方显示报红。排查方法使用Maven命令分析依赖树mvn dependency:tree -Dverbose。-verbose参数会显示冲突信息被忽略的版本会显示(version managed from x.x.x)或(omitted for conflict with x.x.x)。在IDEA中可以使用右键pom.xml-Maven-Show Dependencies打开依赖图可视化工具。红色虚线通常表示冲突。解决方案排除传递依赖在引入依赖A的声明中排除掉冲突的传递依赖。dependency groupIdcom.example/groupId artifactIddependency-A/artifactId version1.0/version exclusions exclusion groupIdproblematic-group/groupId artifactIdproblematic-artifact/artifactId /exclusion /exclusions /dependency统一版本管理在父POM或当前POM的dependencyManagement节中显式声明冲突依赖的版本强制所有模块使用同一版本。使用maven-enforcer-plugin配置该插件来禁止某些冲突或在构建时提前发现冲突。4.3 场景三IDEA索引损坏或缓存问题所有Maven层面的操作都成功了命令行编译无误但IDEA编辑器里还是红的。这大概率是IDEA自身的“小脾气”。解决方案无效化缓存并重启这是IDEA用户的终极法宝。File - Invalidate Caches and Restart...选择Invalidate and Restart。这会清空IDEA的项目索引、本地历史等缓存然后重启。绝大多数“玄学”问题都能用这招解决。重新构建项目索引File - Settings - Build, Execution, Deployment - Compiler点击Clear cache and rebuild on next build旁边的Clear按钮然后重启IDEA或手动触发重建Build - Rebuild Project。检查项目JDK和语言级别确保File - Project Structure - Project中设置的Project SDK和Project language level与pom.xml中配置的maven-compiler-plugin的source/target版本一致。不一致可能导致IDEA无法正确解析某些API。4.4 场景四网络与代理问题对于需要访问外网仓库或者公司内网有严格代理的情况网络问题是根源。排查方法在命令行尝试ping repo.maven.apache.org中央仓库或你的公司私服地址。在浏览器中尝试直接访问仓库的URL看是否能打开。解决方案配置Maven代理在~/.m2/settings.xml中配置代理服务器。settings proxies proxy idmy-proxy/id activetrue/active protocolhttp/protocol !-- 或 https -- hostproxy.yourcompany.com/host port8080/port !-- 可选配置不需要代理的主机 -- nonProxyHostslocalhost|127.0.0.1|*.internal.company.com/nonProxyHosts /proxy /proxies /settings配置IDEA的HTTP代理Settings - Appearance Behavior - System Settings - HTTP Proxy。这里配置的代理通常用于IDE自身的更新和插件市场但有时也会影响内嵌Maven的网络访问最好也检查一下。使用稳定的国内镜像将Maven中央仓库替换为阿里云等国内镜像可以极大提升下载速度与稳定性。在settings.xml的mirrors节中配置。5. 高级技巧与预防措施解决了眼前的问题我们还要着眼于未来建立一些好的习惯和配置从根本上减少依赖报红的发生。5.1 优化Maven配置settings.xml一个健壮的settings.xml是基石。以下是我的常用配置片段settings !-- 本地仓库路径默认即可如需修改请用绝对路径 -- !-- localRepository/path/to/your/repo/localRepository -- mirrors !-- 阿里云镜像加速国内访问 -- mirror idaliyunmaven/id mirrorOfcentral,jcenter,google,spring-milestone,spring-snapshot/mirrorOf nameAliyun Maven Mirror/name urlhttps://maven.aliyun.com/repository/public/url /mirror !-- 如果需要可以配置公司私服为central的镜像 -- !-- mirror idnexus-company/id mirrorOf*/mirrorOf nameCompany Nexus/name urlhttp://nexus.yourcompany.com/repository/maven-public//url /mirror -- /mirrors profiles profile iddefault/id activation activeByDefaulttrue/activeByDefault /activation properties !-- 统一设置编码为UTF-8避免乱码问题 -- project.build.sourceEncodingUTF-8/project.build.sourceEncoding project.reporting.outputEncodingUTF-8/project.reporting.outputEncoding !-- 统一设置Java版本 -- maven.compiler.source11/maven.compiler.source maven.compiler.target11/maven.compiler.target /properties /profile /profiles activeProfiles activeProfiledefault/activeProfile /activeProfiles /settings5.2 在项目中锁定依赖版本避免使用LATEST、RELEASE这类浮动版本号它们会导致构建不可重复。使用dependencyManagement或properties统一管理版本号。对于大型项目考虑使用maven-bomBill of Materials来导入一套预定义好的、经过兼容性测试的依赖集合。5.3 利用IDEA的Maven工具窗口IDEA的Maven工具窗口非常强大快速执行生命周期双击clean,compile,install等即可运行。查看依赖图右键项目 -Show Dependencies可视化分析冲突。快速排除依赖在依赖图中右键某个依赖可以选择ExcludeIDEA会自动帮你生成exclusions配置。搜索依赖支持在仓库中搜索并添加依赖比手动编辑pom.xml更不容易出错。5.4 定期维护本地仓库本地仓库.m2/repository会随着时间推移变得臃肿包含很多过时的快照SNAPSHOT包、下载失败的残缺文件。可以定期比如每季度使用工具进行清理例如使用maven-dependency-plugin的purge-local-repository目标或者手动删除一些明显不再使用的第三方库目录。依赖报红是Java开发者成长路上的必修课它看似简单却涉及了构建工具、网络、IDE、项目配置等多个层面的知识。掌握一套系统性的排查方法远比死记硬背几个“偏方”要有效得多。下次再看到那片红色时希望你能从容地打开这篇文章按照流程一步步定位问题所在而不是陷入盲目尝试的焦虑中。记住耐心和逻辑是解决所有技术问题的关键。

相关新闻

STM32F103C8T6最小系统板硬件解析与开发实战指南

STM32F103C8T6最小系统板硬件解析与开发实战指南

1. 为什么说STM32F103C8T6系统板是“电子工程师的瑞士军刀”?如果你刚接触嵌入式开发,或者想找一个成本低、资源足、社区活跃的微控制器平台来验证你的想法,那么STM32F103C8T6这块小小的蓝色系统板,大概率是你绕不开的“老朋友”。…

2026/10/15 7:00:37 阅读更多 →
拼多多店群自动化管理系统:轻松管理200+店铺的底层防风控实战

拼多多店群自动化管理系统:轻松管理200+店铺的底层防风控实战

拼多多店群自动化管理系统:轻松管理200店铺的底层防风控实战 做店群不怕竞争激烈,就怕工具跟不上。拼多多的多店防关联管理,是店群运营中最耗人力也最容易出错的环节。 做店群的老板都知道,最怕的就是底层IP和硬件指纹穿帮。一旦…

2026/10/15 7:00:35 阅读更多 →
拓扑斯理论:用范畴论重塑无线网络建模与容量分析

拓扑斯理论:用范畴论重塑无线网络建模与容量分析

在无线通信领域,拓扑斯理论(Topos Theory)的引入,标志着一种从纯粹数学结构出发重新审视网络架构与协议设计的深刻转变。Jean-Claude Belfiore 提出的“无线网络的拓扑斯”这一构想,并非一个具体的软件库或工具&#x…

2026/10/10 22:27:05 阅读更多 →

最新新闻

Django 5模型层数据库连接实战:从配置到迁移再到ORM优化

Django 5模型层数据库连接实战:从配置到迁移再到ORM优化

Django 5 发布之后,我把手头一个模拟项目从 4.x 升级到了 5.x,前后折腾最久的地方,不是新特性研究,反而是最不起眼的“模型层连接数据库”这一环。很多人觉得连数据库不就是填个配置吗?等真开工就会发现,驱…

2026/10/15 6:59:51 阅读更多 →
天鹰优化算法AO实现多无人机三维协同避障路径规划

天鹰优化算法AO实现多无人机三维协同避障路径规划

1. 从"能飞"到"飞得聪明":多无人机三维路径规划到底难在哪多无人机协同集群避障路径规划,说白了就是让一群无人机从各自的起点出发,在充满山峰、雷达威胁区和禁飞区的三维空间里,找到一条既安全又省油、还能按…

2026/10/15 6:59:51 阅读更多 →
无铜点击化学荧光探针:生物标记技术新突破

无铜点击化学荧光探针:生物标记技术新突破

1. 项目概述:绿色荧光探针的技术突破在生物标记和分子检测领域,荧光探针就像黑夜中的信号灯,能够精准标记目标分子并发出光学信号。传统铜催化点击化学(CuAAC)虽然应用广泛,但铜离子容易导致荧光淬灭&#…

2026/10/15 6:59:51 阅读更多 →
测试工程师数据库操作实战指南:从SELECT到事务与性能排查

测试工程师数据库操作实战指南:从SELECT到事务与性能排查

作为测试工程师,你日常的工作流里有一个绕不开的坎:不管是功能测试、接口测试还是自动化脚本,跑完用例之后总要回到数据库里查一笔数据、改一个状态、造一条测试记录。我见过太多测试同行的日常状态是——业务逻辑和用例设计都很熟练&#xf…

2026/10/15 6:59:51 阅读更多 →
多模态大模型对齐幻觉:检测、缓解与工程实践指南

多模态大模型对齐幻觉:检测、缓解与工程实践指南

1. 从“对齐幻觉”说起:多模态大模型的一个隐蔽陷阱第一次看到“对齐幻觉”这个词,我脑子里蹦出来的不是学术定义,而是一个特别具体的画面:你给一个多模态大模型看一张图,图里是一只猫趴在键盘上,然后问它“…

2026/10/15 6:59:51 阅读更多 →
Windows本地部署SAM3:从环境配置到图像分割Demo全流程实战

Windows本地部署SAM3:从环境配置到图像分割Demo全流程实战

聊一个最近折腾完的活儿:在Windows系统上把SAM3本地部署起来,跑通了一个图像分割demo。如果你对“点一下就把图上物体抠出来”这种能力感兴趣,又不想把图片传到任何在线平台,这篇文章应该正好合适。这里的SAM3,指的是第…

2026/10/15 6:58:51 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →