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

使用Maven打包JEE项目时依赖解析失败求助

解决方案

1. 核心原因

Maven 3.8.1及以上版本默认启用maven-default-http-blocker拦截策略,禁止从HTTP协议的远程仓库拉取依赖。即便本地已有olap4j的jar包,Maven仍会尝试获取对应POM文件,而依赖链中的jasperreports、jaspersoft-third-party仓库均为HTTP协议,因此被拦截。

2. 具体解决步骤

  • 修改Maven配置,替换为HTTPS仓库
    找到本地Maven的conf/settings.xml(或用户目录.m2/settings.xml),添加HTTPS镜像替代原HTTP仓库:

    <mirrors>
        <mirror>
            <id>jasperreports-https</id>
            <mirrorOf>jasperreports</mirrorOf>
            <url>https://jasperreports.sourceforge.io/maven2/</url>
        </mirror>
        <mirror>
            <id>jaspersoft-third-party-https</id>
            <mirrorOf>jaspersoft-third-party</mirrorOf>
            <url>https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/</url>
        </mirror>
    </mirrors>
    
  • 启用离线模式打包
    执行打包命令时添加-o参数,强制Maven仅使用本地仓库,跳过远程仓库请求:

    mvn clean package -o
    
  • 检查本地仓库完整性
    进入本地仓库的olap4j目录(如~/.m2/repository/org/olap4j/olap4j/0.9.7.309-JS-3/),确认是否存在olap4j-0.9.7.309-JS-3.pom文件。若缺失,可从可信HTTPS源手动下载该POM放入对应目录,或复制其他项目中完整的olap4j依赖文件。

  • 升级jasperreports依赖版本
    旧版本jasperreports依赖的仓库为HTTP协议,升级到6.20.0及以上版本,该版本已适配HTTPS仓库:

    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>6.20.0</version>
    </dependency>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:45:50