HiveQL运行报NoClassDefFoundError: Configuration缺失的依赖排查与根治
1. 问题背景与核心症结拆解1.1 这个报错到底在说什么先把报错原文拆开看java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration。注意这里的关键词是NoClassDefFoundError不是ClassNotFoundException。这两个东西经常被混为一谈但它们的触发时机完全不同排查方向也完全不一样。ClassNotFoundException通常发生在显式加载类的时候比如Class.forName(xxx)或者ClassLoader.loadClass(xxx)编译器在编译期根本不知道你要加载哪个类运行时找不到就抛这个。而NoClassDefFoundError是 JVM 在链接阶段或者类初始化阶段找不到某个类的定义通常意味着编译的时候这个类是存在的但运行时它不在 classpath 里或者它的静态初始化块炸了导致后续引用失败。org.apache.hadoop.conf.Configuration这个类属于 Hadoop Common 模块是 Hadoop 生态里最基础的配置类之一。Hive 的元数据操作、HDFS 访问、MapReduce 任务提交几乎每一层都依赖它。所以当你在 Java 程序里跑 HiveQL 却报这个错本质上就是一句话你的运行时 classpath 里缺了 Hadoop 的核心依赖或者依赖版本对不上。1.2 为什么偏偏是 Configuration 这个类先炸很多人会疑惑我明明引入了 hive-jdbc 或者 hive-exec为什么第一个报错的偏偏是Configuration这里有个执行顺序的问题。HiveQL 的执行链路大致是这样的你的 Java 代码调用 Hive 的 Driver 或者 JDBC 接口Driver 在编译 SQL 语句时需要读取 Hive 的配置比如元数据库地址、执行引擎而 Hive 的配置体系是构建在 Hadoop 的Configuration之上的。也就是说Configuration是整条链路上最早被触碰到的外部依赖类。它一旦缺失后面的 SessionState、Driver、Compiler 全都还没机会初始化JVM 就直接在链接阶段抛错了。这就解释了一个常见现象你看到的是Configuration找不到但真正缺的可能是一整组 Hadoop 依赖。Configuration只是那个最先倒下的多米诺骨牌。1.3 这个问题的典型触发场景根据我这些年踩坑和帮人排查的经验这个报错基本集中在以下几类场景场景一Maven 依赖只引了 Hive没引 Hadoop。新手最容易犯以为 hive-exec 会传递依赖把 Hadoop 带进来结果发现 scope 是 provided根本没打进包。场景二打包时依赖没打全。用mvn package打出来的 jar 只有自己的类第三方依赖没进去运行时报错。场景三集群环境和本地环境依赖冲突。本地 IDE 里跑得好好的一提交到集群就炸因为集群的 Hadoop 版本和你编译时用的版本不一致。场景四多个 Hadoop 版本共存导致类加载混乱。classpath 里同时有 hadoop-common 的多个版本类加载器加载到了不兼容的那个。理解了自己属于哪一类场景后面的排查就能少走一大半弯路。2. 依赖体系与版本对齐的底层逻辑2.1 Hadoop 与 Hive 的版本对应关系解决这类问题核心不是把缺的 jar 补上这么简单而是要搞清楚 Hadoop 和 Hive 之间的版本兼容矩阵。Hive 对 Hadoop 的依赖是强耦合的版本错配会引发各种诡异的运行时错误NoClassDefFoundError只是其中最直白的一种。下面这张表是我整理的常见版本对应关系实际选型时可以直接参考Hive 版本推荐 Hadoop 版本说明Hive 1.xHadoop 2.6.x - 2.7.x老项目常见组合稳定但功能受限Hive 2.xHadoop 2.7.x - 3.0.x兼容性较好生产环境用得多Hive 3.xHadoop 3.x新项目首选注意 API 有变化Hive 4.xHadoop 3.3.x较新需关注 Tez/Spark 引擎适配选版本的原则很简单以你运行环境集群或本地伪分布式的 Hadoop 版本为准去反推该用哪个 Hive 版本而不是反过来。因为 Hadoop 是底座Hive 是上层建筑底座不动上层去适配它。2.2 Maven 依赖的正确引入姿势很多人栽在依赖 scope 上。我见过太多人写了这样的依赖dependency groupIdorg.apache.hive/groupId artifactIdhive-exec/artifactId version3.1.2/version /dependency然后运行时报Configuration找不到。原因在于 hive-exec 的 pom 里hadoop-common 等依赖的 scope 是provided意思是我编译时需要但运行时由外部环境提供。Maven 的传递依赖机制不会把 provided 的依赖传递给你所以你的 classpath 里自然就没有 Hadoop 的类。正确的做法是显式引入 Hadoop 依赖并且 scope 用compile默认dependency groupIdorg.apache.hadoop/groupId artifactIdhadoop-common/artifactId version3.3.4/version /dependency dependency groupIdorg.apache.hadoop/groupId artifactIdhadoop-mapreduce-client-core/artifactId version3.3.4/version /dependency dependency groupIdorg.apache.hadoop/groupId artifactIdhadoop-hdfs/artifactId version3.3.4/version /dependency这里有个细节值得说hadoop-common里包含了Configuration类但如果你只引它跑 HiveQL 时可能还会缺hadoop-mapreduce-client-core因为 Hive 默认用 MapReduce 引擎或者hadoop-hdfs因为要访问 HDFS。所以不要只补一个 jar要把 Hadoop 的核心三件套一起引进来。2.3 依赖冲突的排查方法版本对齐之后还要防一手依赖冲突。同一个类被多个版本的 jar 提供类加载器加载到哪个是不确定的很容易出现本地能跑、打包就炸的情况。排查依赖冲突我习惯用 Maven 的依赖树命令mvn dependency:tree -Dincludesorg.apache.hadoop:*这条命令会列出所有 Hadoop 相关的依赖及其来源。如果看到同一个 artifact 出现多个版本就要用exclusions把不需要的版本排掉。比如dependency groupIdorg.apache.hive/groupId artifactIdhive-exec/artifactId version3.1.2/version exclusions exclusion groupIdorg.apache.hadoop/groupId artifactIdhadoop-common/artifactId /exclusion /exclusions /dependency排除掉传递进来的旧版本统一用你自己声明的版本这样 classpath 里就只有一个 Hadoop 版本类加载不会乱。提示依赖冲突最隐蔽的表现不是报错而是行为不一致。比如同样的代码本地跑出来是 A 结果打包后跑出来是 B 结果。遇到这种情况第一反应就该去查依赖树。3. 从本地到集群的完整实操排查流程3.1 第一步确认报错发生的准确位置排查任何NoClassDefFoundError第一步永远是看完整的堆栈信息而不是只看最后一行。堆栈会告诉你这个类是在哪个类的哪个方法里被引用的这直接决定了你要补哪个依赖。比如堆栈里如果出现org.apache.hadoop.hive.ql.session.SessionState说明是 Hive 会话初始化时缺的如果出现org.apache.hadoop.hive.ql.exec.MapRedTask说明是执行引擎阶段缺的。不同位置缺的依赖可能不一样。我一般会先把堆栈完整复制出来从下往上读找到第一个属于自己代码的调用点然后看它往下调用了哪些 Hive/Hadoop 的类。这一步花两分钟能省后面半小时的瞎试。3.2 第二步用最小依赖集验证确认位置后不要急着往项目里堆依赖先用一个最小可运行的程序验证依赖是否齐全。我通常写一个这样的测试类import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.session.SessionState; public class HiveDependencyCheck { public static void main(String[] args) { Configuration conf new Configuration(); conf.set(hive.metastore.uris, thrift://localhost:9083); SessionState.start(conf); System.out.println(依赖检查通过Configuration 和 SessionState 均可加载); } }这个类只做两件事实例化Configuration启动SessionState。如果这两步都能过说明核心依赖没问题问题可能出在更上层的执行引擎依赖上。如果第一步就炸那问题就锁定在 hadoop-common 上。这种最小验证的思路比直接在大项目里改依赖要高效得多因为变量少定位准。3.3 第三步打包方式的正确选择本地 IDE 能跑、打包后不能跑十有八九是打包方式的问题。这里要区分两种打包需求如果只是本地运行用mvn exec:java或者直接在 IDE 里跑依赖由 Maven 管理一般不会缺。如果要打成可执行 jar 分发必须用 shade 或 assembly 插件把依赖打进去。用 maven-shade-plugin 的配置示例plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-shade-plugin/artifactId version3.4.1/version executions execution phasepackage/phase goals goalshade/goal /goals configuration transformers transformer implementationorg.apache.maven.plugins.shade.resource.ManifestResourceTransformer mainClasscom.example.HiveDependencyCheck/mainClass /transformer /transformers /configuration /execution /executions /plugin打完之后用jar tf your-jar.jar | grep Configuration确认org/apache/hadoop/conf/Configuration.class确实在包里。这一步是很多人的盲区以为配了插件就万事大吉其实配置写错导致依赖没打进去的情况非常常见。3.4 第四步集群提交时的依赖处理如果你的程序是要提交到集群上跑的那依赖处理又是另一套逻辑。集群上通常已经有 Hadoop 和 Hive 的 jar你不应该把自己的 Hadoop 依赖也打进去否则会和集群的版本冲突。这时候正确的做法是把 Hadoop 和 Hive 的依赖 scope 设为provided打包时不打进去运行时由集群环境提供。同时用-libjars参数把你自己的业务依赖传上去hadoop jar your-app.jar com.example.Main \ -libjars /path/to/your-dependency.jar \ input output-libjars会把指定的 jar 分发到各个节点的任务 classpath 里这样既不会污染集群环境又能保证你的依赖可用。这个参数很多人不知道导致提交任务后各种NoClassDefFoundError。注意-libjars里的 jar 路径必须是提交机上真实存在的路径而且多个 jar 之间用逗号分隔不能有空格。4. 常见问题速查与避坑经验4.1 高频问题速查表下面这张表是我整理的这类报错的高频原因和对应解法遇到问题可以直接对号入座现象可能原因排查方法解决方案本地 IDE 报 Configuration 找不到只引了 Hive 没引 Hadoop看依赖树有无 hadoop-common显式引入 hadoop-common打包后运行报错依赖没打进 jarjar tf检查 jar 内容配置 shade 插件集群提交报错依赖 scope 不对检查 pom 的 scope改 provided libjars时好时坏依赖冲突mvn dependency:tree用 exclusions 排版本换台机器就报错环境变量不一致对比 HADOOP_HOME、CLASSPATH统一环境配置4.2 几个容易忽略的坑坑一HADOOP_HOME和HADOOP_CONF_DIR没设对。有些 Hive 的 API 会去读环境变量来定位配置文件如果这两个变量没设或者指向了错误的目录即使 jar 都在也可能因为找不到配置而间接引发类加载问题。我一般会在启动脚本里显式 export 这两个变量。坑二hadoop-common和hadoop-client混用。hadoop-client是一个聚合依赖它会把 common、hdfs、mapreduce 都带进来。如果你同时引了hadoop-client和单独的hadoop-common很容易出现版本不一致。二选一别混着来。坑三JDK 版本不匹配。Hadoop 3.x 编译时用的是 JDK 8如果你用 JDK 11 或 17 跑某些类可能因为模块化限制加载失败。虽然报错信息不一定是NoClassDefFoundError但排查时要把 JDK 版本纳入考虑。我实测下来Hadoop 3.3.x 配 JDK 8 是最稳的组合。坑四Configuration的静态初始化失败。有一种特殊情况Configuration类本身在 classpath 里但它的静态初始化块抛了异常比如读取某个系统属性失败这也会表现为NoClassDefFoundError。这种情况要看堆栈里有没有ExceptionInInitializerError作为根因。排查方法是加-verbose:class参数看这个类到底有没有被加载。4.3 我的实操心得说几个文档里不会写、但实际排查中特别有用的经验。第一先看堆栈再看依赖。很多人一看到NoClassDefFoundError就条件反射去加依赖结果加了一堆还是报错。其实堆栈里往往已经告诉了你根因比如Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration这就明确说是类找不到而不是初始化失败。区分清楚这两者能少走很多弯路。第二用-verbose:class看类加载过程。这个 JVM 参数会打印每个类的加载来源当你怀疑类加载混乱时它能直接告诉你Configuration是从哪个 jar 加载的。命令是java -verbose:class -jar your-app.jar输出里搜Configuration就能看到。第三版本号要精确到小版本。Hadoop 的 3.3.4 和 3.3.5 之间可能有 API 变化不要用3.3.x这种模糊写法。Maven 里写死具体版本避免构建时拉到不一致的版本。第四本地和集群的依赖要分开管理。我习惯用 Maven 的 profile 来区分本地开发用一套依赖集群提交用另一套。这样切换环境时不用手动改 pom减少出错概率。profiles profile idlocal/id dependencies dependency groupIdorg.apache.hadoop/groupId artifactIdhadoop-common/artifactId version3.3.4/version /dependency /dependencies /profile profile idcluster/id dependencies dependency groupIdorg.apache.hadoop/groupId artifactIdhadoop-common/artifactId version3.3.4/version scopeprovided/scope /dependency /dependencies /profile /profiles用mvn package -P local或-P cluster来切换干净利落。5. 依赖管理的最佳实践与长期维护5.1 建立统一的依赖版本管理项目一旦大起来依赖版本散落在各个模块的 pom 里迟早会出问题。我的做法是在父 pom 里用dependencyManagement统一声明所有 Hadoop 和 Hive 相关依赖的版本子模块只引 artifact 不写 version。dependencyManagement dependencies dependency groupIdorg.apache.hadoop/groupId artifactIdhadoop-common/artifactId version3.3.4/version /dependency dependency groupIdorg.apache.hive/groupId artifactIdhive-exec/artifactId version3.1.2/version /dependency /dependencies /dependencyManagement这样版本只有一个源头改的时候改一处就行不会出现 A 模块用 3.3.4、B 模块用 3.3.5 的混乱局面。5.2 用 enforcer 插件守住底线光靠人自觉是不够的我还会用 maven-enforcer-plugin 来强制检查依赖版本一旦出现冲突直接让构建失败把问题挡在编译期而不是运行期。plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-enforcer-plugin/artifactId version3.3.0/version executions execution idenforce-versions/id goals goalenforce/goal /goals configuration rules dependencyConvergence/ /rules /configuration /execution /executions /plugindependencyConvergence规则会检查同一个 artifact 是否有多个版本有就报错。这个规则刚加上去的时候可能会暴露一堆历史遗留问题但修完之后运行时的依赖问题会少一大半。5.3 容器化环境下的依赖处理现在很多团队用容器跑任务这时候依赖处理又不一样。容器镜像里通常预装了 Hadoop 和 Hive你的应用镜像只需要装业务依赖。关键是镜像的基础层要和集群环境对齐否则容器里跑得好好的提交到集群还是报错。我的做法是基础镜像直接用集群同款的 Hadoop 镜像业务代码用多阶段构建打进去运行时通过挂载或者环境变量注入配置。这样既保证了依赖一致又保持了镜像的轻量。5.4 一个容易被忽视的细节类加载器隔离在 Web 容器或者某些框架里类加载器是有层级隔离的。你的应用类加载器可能看不到系统类加载器加载的 Hadoop 类这也会导致NoClassDefFoundError。这种情况的典型特征是命令行跑没问题放到 Tomcat 或者 Spring Boot 里就报错。解决办法是把 Hadoop 依赖放到和应用同一个类加载器能看到的路径下或者用Thread.currentThread().getContextClassLoader()显式指定类加载器。Spring Boot 项目里可以把 Hadoop 依赖的 scope 设为compile并确保它被打进 fat jar 的BOOT-INF/lib下。6. 从报错到根治的思维转变6.1 不要头痛医头NoClassDefFoundError: org/apache/hadoop/conf/Configuration这个报错表面上是缺一个类本质上是依赖管理体系没建立起来。今天补了 Configuration明天可能缺 FileSystem后天可能缺 JobConf。如果只是逐个补 jar永远在救火。正确的思路是一次性把 Hadoop 和 Hive 的依赖关系理清楚用 dependencyManagement 统一版本用 enforcer 守住底线用 profile 区分环境。这套组合拳打下来这类报错基本就绝迹了。6.2 建立自己的排查清单我现在遇到任何NoClassDefFoundError都会按这个顺序过一遍看完整堆栈确认是类找不到还是初始化失败用mvn dependency:tree看依赖树确认目标类在不在用jar tf看打包结果确认类有没有打进去用-verbose:class看运行时类加载来源对比本地和集群的环境差异这五步走下来九成以上的问题都能定位。剩下的那一成通常是环境本身的诡异问题比如磁盘上的 jar 损坏、网络文件系统同步延迟之类的那就得具体问题具体分析了。6.3 版本升级时的注意事项最后说一个长期维护的点Hadoop 和 Hive 升级时Configuration相关的 API 虽然相对稳定但也不是完全没变。比如 Hadoop 3.x 里Configuration增加了一些新的方法同时废弃了一些老方法。升级时如果代码里用了废弃方法编译可能过但运行会警告严重的会抛异常。我的建议是升级前先在测试环境跑一遍完整的回归重点验证元数据操作、HDFS 读写、任务提交这三条链路。升级后如果出现NoClassDefFoundError优先怀疑是不是某个依赖的传递版本没跟着升用依赖树一查便知。这套排查和治理的思路不只适用于Configuration这一个类整个 Hadoop 生态的依赖问题都可以套用。把根因找出来把体系建起来比每次救火要省心得多。

相关新闻

Spring Boot大学生家教管理系统:从需求拆解到答辩全攻略

Spring Boot大学生家教管理系统:从需求拆解到答辩全攻略

一个纯靠复制粘贴拼出来的Spring Boot毕设,答辩时一问三不知,看着像是“他做的”,实则离了别人的代码一层纸就捅破,这种例子我见过太多了。反过来,真正吃透一个项目,哪怕只是一个大学生家教管理系统&#x…

2026/10/13 20:20:29 阅读更多 →
VoLTE语数分层策略:语音与数据资源协同调度实战

VoLTE语数分层策略:语音与数据资源协同调度实战

简介:本资源是一份面向5G网络优化工程师与通信运维技术人员的VoLTE专项技术研究文档,聚焦于语音与数据业务协同优化这一核心难题。针对L800M与L1.8G双频组网下VoLTE通话质量(MOS)下降、载波负荷失衡等实际场景,系统阐述…

2026/10/13 20:19:26 阅读更多 →
Sklearn数据生成器实战指南:从算法调试到可复现评测

Sklearn数据生成器实战指南:从算法调试到可复现评测

1. 为什么你需要亲手“造”数据——从模型调试到教学演示的真实需求“如何使用Sklearn生成自己的数据集”——这句话乍看像教科书里的冷门小节,但在我带过的十几个机器学习实操项目里,它几乎是我每周都要重讲三遍的核心技能。不是因为算法多难&#xff0…

2026/10/13 20:19:26 阅读更多 →

最新新闻

Pandas线性插值实战:空气质量数据异常值与缺失值处理

Pandas线性插值实战:空气质量数据异常值与缺失值处理

这段时间帮某个环境监测项目处理城市空气质量数据,遇到最多的不是模型效果差,而是数据本身的问题。一套PM2.5、PM10、NO2、SO2浓度数据拿过来,缺失值、异常值、重复记录混在一起,直接建模结果根本没法看。把这些数据清洗干净&…

2026/10/14 14:37:53 阅读更多 →
Res2dmod二维正演原理与地形建模实战指南

Res2dmod二维正演原理与地形建模实战指南

简介:本资源为地球物理勘探领域专业正演软件Res2dmod的完整安装包,面向地质勘查、矿产与石油勘探、环境及工程地质等方向的科研人员与高年级本科生/研究生,用于开展二维高密度电法正演模拟与反演建模。包内共5个文件:setup.exe与s…

2026/10/14 14:37:53 阅读更多 →
Feature-level SMOTE:破解PHM故障诊断中的类别不平衡难题

Feature-level SMOTE:破解PHM故障诊断中的类别不平衡难题

1. 从一次翻车的轴承故障诊断说起去年帮一个做风电齿轮箱状态监测的团队调模型,他们手里有三年多的振动数据,正常样本几十万条,早期微弱故障样本满打满算不到三百条。当时用常规的SMOTE在原始时序上做增强,训练集AUC能刷到0.98&am…

2026/10/14 14:37:53 阅读更多 →
Python第4周循环与列表常见错误深度复盘

Python第4周循环与列表常见错误深度复盘

1. 这不是一份普通作业复盘,而是一份“Python语法肌肉记忆”养成指南你打开浏览器,输入“Python语言程序设计第4周测验练习题复盘”,页面跳出的多半是零散的答案截图、几道题的简短解析,或者某个学生在论坛里发的“求大佬帮看第3题…

2026/10/14 14:37:53 阅读更多 →
博弈论:从棋局到现实决策的策略思维工具

博弈论:从棋局到现实决策的策略思维工具

我最早在书架上看《博弈论》这类书时,第一反应是:这是教人下棋打牌的书吗?“博弈”两个字听起来就像棋盘上的事,翻了几页才发现完全跑偏了。它不是教你怎么下棋,而是在回答一个更底层的问题:当我的决定会影…

2026/10/14 14:37:53 阅读更多 →
WSL2 GPU直通实战:在Windows上搭建深度学习与大模型微调环境

WSL2 GPU直通实战:在Windows上搭建深度学习与大模型微调环境

做 AI 开发,环境折腾永远是逃不掉的课题。以前我在 Windows 上跑深度学习,常用方案各有各的别扭:双系统切换要重启,传统虚拟机里 GPU 基本是摆设,Docker Desktop 又总在资源隔离上出问题。后来把 WSL2 这套组合拳打顺了…

2026/10/14 14:36:51 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/13 16:22:04 阅读更多 →
影刀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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →