You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Extent Report遇NoClassDefFoundError异常,求解决方法

解决Extent Report的NoClassDefFoundError: freemarker/template/TemplateModelException异常

这个异常的核心原因是运行时JVM无法找到Freemarker的TemplateModelException类,通常和依赖缺失、版本不兼容或者依赖范围配置错误有关。结合你的POM配置,我给你几个可行的解决方案:

1. 验证Freemarker依赖是否正确加载

  • 首先检查本地Maven仓库(默认路径~/.m2/repository/org/freemarker/freemarker/2.3.23/)是否存在freemarker-2.3.23.jar文件。如果缺失,执行以下命令强制更新依赖:
    mvn clean install -U
    
  • 确认你的Freemarker依赖没有设置错误的<scope>(比如provided或test),这些scope会导致依赖只在编译/测试阶段可用,运行时被排除。你的当前配置没有指定scope,默认是compile,这是正确的,但如果之前有修改过,要确保恢复默认。

2. 解决依赖版本冲突

有时候项目中其他依赖可能引入了不同版本的Freemarker,导致版本冲突,覆盖了你指定的2.3.23版本。你可以通过Maven依赖树排查:

mvn dependency:tree

如果发现有其他依赖引入了不兼容的Freemarker版本,你可以在Extent Reports的依赖中排除冲突的Freemarker,确保只使用你指定的版本:

<dependency>
    <groupId>com.relevantcodes</groupId>
    <artifactId>extentreports</artifactId>
    <version>2.41.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 清理并重建项目

  • 执行Maven清理命令,清除旧的编译文件和依赖缓存:
    mvn clean
    
  • 重新编译项目:
    mvn compile
    
  • 如果使用IDE(如IntelliJ IDEA或Eclipse),可以点击"刷新Maven依赖"按钮,或者重新导入项目,确保IDE正确识别所有依赖包。

额外建议

如果以上方法都无效,可以尝试更换Freemarker的版本。Extent Reports 2.41.2经过验证兼容的Freemarker版本是2.3.20,你可以修改POM中的Freemarker依赖版本为2.3.20再测试。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:47:06