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

如何在POM中集成BIRT 4.9.0?Java17重构依赖报错排查

Maven无法解析BIRT 4.9.0 Runtime依赖的解决思路

问题背景

重构适配Java 17的应用时,将原有BIRT 3.7.x runtime升级到4.9.0,在POM中添加了以下依赖:

<dependency>
    <groupId>org.eclipse.birt</groupId>
    <artifactId>birt-runtime</artifactId>
    <version>4.9.0</version>
</dependency>
<dependency>
    <groupId>org.eclipse.birt</groupId>
    <artifactId>birt-runtime-osgi</artifactId>
    <version>4.9.0</version>
</dependency>

构建时抛出依赖未找到异常:

org.eclipse.birt:birt-runtime:jar:4.9.0 was not found in https://repo1.maven.org/maven2 during a previous attempt

已清理本地.m2仓库,且确认中央仓库存在该依赖,但不想手动下载,希望通过配置解决。

解决步骤

  • 核对依赖的类型/Classifier
    BIRT runtime的发布包并非默认的jar格式,查看中央仓库的实际包可知,birt-runtime 4.9.0提供的是zip包。需要在依赖中指定类型:

    <dependency>
        <groupId>org.eclipse.birt</groupId>
        <artifactId>birt-runtime</artifactId>
        <version>4.9.0</version>
        <type>zip</type>
    </dependency>
    

    如果应用需要解压后的jar文件,可配合maven-dependency-plugin自动解压该zip包。

  • 强制Maven刷新依赖缓存
    执行构建时加上-U参数,强制Maven忽略本地缓存的解析结果,重新从中央仓库拉取依赖信息:

    mvn clean install -U
    
  • 检查Maven镜像配置
    打开settings.xml(用户目录下的.m2/settings.xml或Maven全局配置文件),确认没有配置拦截中央仓库的镜像,或者镜像仓库完整同步了中央仓库的内容。如果存在mirrorOf为*的镜像,需确保该镜像可以正常访问BIRT的依赖资源。

  • 精简依赖配置
    birt-runtime-osgi已包含OSGI环境下的完整runtime,可尝试只保留该依赖,避免重复引入导致的解析冲突。若必须同时使用两个依赖,需确认它们的范围和类型配置正确。

  • 验证Maven版本兼容性
    Java 17需要搭配Maven 3.8.1及以上版本使用,旧版Maven可能存在Java版本兼容问题,导致依赖解析失败。升级Maven到最新稳定版后重试构建。

内容的提问来源于stack exchange,提问作者pojo-guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:00:54