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

Jenkins Pipeline无法导入Apache POI类及jar包放置位置咨询

解决Jenkins Pipeline无法导入Apache POI类的问题

方法一:手动将POI jar包放入Jenkins类路径

  • 定位Jenkins安装目录下的WEB-INF/lib文件夹:
    • Linux系统通常路径为/var/lib/jenkins/war/WEB-INF/lib
    • Windows系统通常路径为C:\Program Files\Jenkins\war\WEB-INF\lib
  • 从Maven仓库下载所需的POI相关jar包,核心依赖包括:poi.jar、poi-ooxml.jar、poi-ooxml-schemas.jar、xmlbeans.jar、commons-codec.jar、commons-collections4.jar
  • 将所有下载好的jar包复制到WEB-INF/lib目录
  • 重启Jenkins,使类路径更新生效

这种方式会让POI依赖全局生效,所有Jenkins Pipeline都能调用,但Jenkins版本升级时可能需要重新复制jar包。

方法二:在Pipeline脚本中动态加载依赖(推荐)

无需手动复制jar包,利用Groovy的@Grab注解自动下载依赖,同时修正你脚本中的SXSSF类导入错误:

@Grab('org.apache.poi:poi:5.2.5')
@Grab('org.apache.poi:poi-ooxml:5.2.5')
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; // 修正SXSSF的包路径

pipeline {
 agent any

  stages {
    stage('excel') {
      steps {
        script {
            SXSSFWorkbook wb = new SXSSFWorkbook(100);
            println "Workbook创建成功: ${wb}"
            wb.close() // 记得关闭资源
        }
      }
    }

  }
}

注意事项:

  • 替换版本号为你需要的POI稳定版本
  • 若Jenkins启用了安全沙箱,需在全局安全配置中允许脚本使用@Grab注解
  • @Grab会自动下载POI的传递依赖,无需手动处理

额外提示

你原脚本中未导入SXSSFWorkbook类,且其正确包路径为org.apache.poi.xssf.streaming.SXSSFWorkbook,这也是导致类无法解析的原因之一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:15:39