iceberg 源码编译

本文详细介绍了如何在国内环境下编译Apache Iceberg项目。首先通过git克隆项目,然后编辑gradle文件,添加华为云镜像源以加速依赖下载。接着,可选择性地执行脚本来下载依赖。最后,执行编译命令,若要跳过测试,可使用特定参数。此外,还提供了如何查看所有任务和执行代码格式检查的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

iceberg本地编译。


一、下载

git clone https://github.com/apache/iceberg.git

二、编辑gradle文件,添加国内源

在buildscript的repositories中添加

    maven{ url 'https://mirrors.huaweicloud.com/repository/maven/' }

添加后如下所示:

buildscript {
  repositories {
    maven{ url 'https://mirrors.huaweicloud.com/repository/maven/' }
    gradlePluginPortal()
  }
  dependencies {
    classpath 'com.github.jengelman.gradle.plugins:shadow:5.0.0'
    classpath 'com.palantir.baseline:gradle-baseline-java:3.36.2'
    classpath 'com.palantir.gradle.gitversion:gradle-git-version:0.12.3'
    classpath 'com.diffplug.spotless:spotless-plugin-gradle:5.14.0'
    classpath 'gradle.plugin.org.inferred:gradle-processors:2.1.0'
    classpath 'me.champeau.gradle:jmh-gradle-plugin:0.4.8'
  }
}

allprojects中添加

    maven {
      url 'https://mirrors.huaweicloud.com/repository/maven/'
    }

添加后如下所示

allprojects {
  group = "org.apache.iceberg"
  version = getProjectVersion()
  repositories {
    maven {
      url 'https://mirrors.huaweicloud.com/repository/maven/'
    }
    mavenCentral()
    mavenLocal()
  }
  project.ext {
    Spark30Version = '3.0.3'
    Spark31Version = '3.1.1'
  }
}

下载依赖(可选)
进入项目根目录,执行脚本:

./gradlew dependencies

三、正式编译

进入项目根目录,执行:

./gradlew build

上述命令会执行代码里的单元测试,如果不需要,则执行以下命令:

./gradlew build -x test -x integrationTest

解释:
在gradle中,如果要跳过某个task,就可以添加–exclude-task参数(短命令便是-x),跟上task名称,在很多项目中,单元测试是以test命名的。

如果在执行的过程中,发现并没有跳过所有测试,是因为在iceberg某些版本里面,有些测试并没有以test命名,比如关于spark的单元测试,有些被命名为testSpark31,所以需要将此也一并跳过,此时,只需要在命令后面追加 -x testSpark31即可,如果有别的测试,像这样添加进去即可。
测试相关task时可按下方示例:

  task testSpark31(type: Test) {
    dependsOn classes
    group = "verification"
    description = "Test against Spark 3.1"
    testClassesDirs = sourceSets.spark31.output.classesDirs
    classpath = sourceSets.spark31.runtimeClasspath + sourceSets.main.output
  }

关于代码格式检查,如果在编译过程中,需要跳过代码格式检查,可以添加:

-x scalaStyle 跳过scala代码检查

所有相关代码格式检查的任务:

checkstyleIntegration checkstyleJmh checkstyleTest checkstyleMain scalastyleMainCheck 

所以,如果想执行代码格式检查,仅需要执行:

./gradlew checkstyleIntegration checkstyleJmh checkstyleTest checkstyleMain scalastyleMainCheck 

使用./gradlew tasks可以列出当前项目里面所有的task列表


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值