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

Ubuntu20.04编译Apache Ranger2.4.0遇Maven打包错误求助

解决Apache Ranger 2.4.0编译时schema-registry-plugin归档失败问题
  • 先单独验证distro模块的构建结果
    执行mvn -pl distro -DskipTests clean package单独构建distro模块,然后用jar tf /home/swapnendu_b/apache-ranger-2.4.0/distro/target/ranger-distro-2.4.0.jar | grep pom.properties命令检查目标jar包中是否存在缺失的pom.properties文件。如果文件确实不存在,说明distro模块的构建配置有问题,需要优先修复这个模块。

  • 检查distro模块的maven-jar-plugin配置
    打开distro/pom.xml,找到maven-jar-plugin的配置段,确保它保留了自动生成pom元文件的默认行为。默认情况下maven-jar-plugin会把pom.properties和pom.xml写入jar包的META-INF/maven目录,如果配置中覆盖了<archive>节点但未开启相关选项,可能导致文件缺失。参考配置如下:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.3.0</version>
      <configuration>
        <archive>
          <manifest>
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
          </manifest>
        </archive>
      </configuration>
    </plugin>
    
  • 修正schema-registry-plugin的assembly配置
    打开plugins/schema-registry-plugin/pom.xml,检查maven-assembly-plugin的配置:

    1. 确认依赖的distro jar包版本使用${project.version}变量,避免硬编码版本号导致匹配错误;
    2. 查看对应的assembly descriptor文件(通常是src/main/assembly/assembly.xml),检查是否有过滤规则误删除了META-INF目录下的pom相关文件。
  • 清理缓存并针对性构建
    先删除本地Maven仓库中Ranger相关的缓存文件:rm -rf ~/.m2/repository/org/apache/ranger,然后执行mvn clean install -DskipTests -pl distro,schema-registry-plugin -am,强制重新构建依赖模块和目标插件模块,避免旧缓存干扰。

  • 尝试降级maven-assembly-plugin版本
    新版本的assembly插件可能和Ranger 2.4.0的构建逻辑存在兼容性问题,尝试将根pom.xml中的maven-assembly-plugin版本降级到3.3.0(Ranger 2.4.0原生适配的版本范围),再重新执行完整构建命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:03:25