iceberg 源码编译


前言

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列表


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值