graal java_如何在CircleCI上构建支持Graal的JDK8?

本文介绍了如何使用CircleCI构建支持Graal的JDK8,包括两种方法:标准Docker容器和预构建的优化Docker容器。通过CI/CD工具,可以验证和验证构建脚本,自动化二进制文件的创建和部署。文章详细解释了配置文件的各个部分,并对比了两种方法的性能和完整性检查。
摘要由CSDN通过智能技术生成

graal java

引用:博客上的专题图片可以在flickr上找到,并由Luca Galli创建。 以下部分之一中的图像也可以在flickr上找到,并由fklv(过时的时髦)创建。


GraalVM编译器替代了HotSpot的服务器端JIT编译器 ,该编译 被广泛称为C2编译器 。 它是用Java编写的,目的是与C2编译器相比,具有更好的性能(除其他目标外)。 从Java 9开始的新更改意味着现在有了JVMCI ,我们就可以将自己的手写C2编译器插入JVM。 Oracle实验室的研究人员和工程师)创建了启用JVMCI的JDK8变种,可用于构建GraalVM编译器GraalVM编译器是开源的, 可在GitHub上使用 (以及构建GraalVM编译器所需的HotSpot JVMCI源代码 )。 这使我们能够分叉/克隆它并构建我们自己的GraalVM编译器版本。

在本文中,我们将在CircleCI上使用JDK8构建GraalVM编译器 。 产生的工件将是:

–嵌入GraalVM编译器JDK8 ,以及
–包含Graal&Truffle模块/组件的zip存档。

注意:本文不讨论如何构建整个GraalVM套件,这可以通过另一篇文章来完成。 尽管可以使用这些脚本,但是存在一个 包含其余步骤 分支。

为什么要使用CI工具来构建GraalVM编译器?

持续集成(CI)和持续部署(CD)工具有很多好处。 最大的功能之一就是能够检查代码库的运行状况。 了解构建失败的原因,可以为您提供更快进行修复的机会。 对于这个项目,重要的是我们能够验证和验证在本地和Docker容器中构建用于LinuxmacOSGraalVM编译器所需的脚本。

CI / CD工具使我们可以添加自动化测试,以确保在合并每个PR时,可以从脚本中获得所需的结果。 除了确保我们的新代码不会带来重大变化之外,CI / CD工具的另一个重要功能是我们可以自动化二进制文件的创建和这些二进制文件的自动部署,从而使它们可用于开源分发。

让我们开始吧

在研究CircleCI作为构建GraalVM编译器的CI / CD解决方案的过程中,我了解到可以通过两种不同的方法来运行构建,即:

–使用标准Docker容器的CircleCI构建(更长的构建时间,更长的配置脚本)
–带有预先构建的,优化的Docker容器的CircleCI构建(更短的构建时间,更短的配置脚本)

现在,我们将通过上面提到的两种方法,来了解两种方法的利弊。

方法1:使用标准Docker容器

对于这种方法,CircleCI需要一个Docker映像,该映像可在Docker Hub或它有权访问的另一个公共/私有注册表中使用。 为了成功构建,我们将必须在此可用环境中安装必要的依赖项。 我们希望构建第一次运行会更长,并且根据缓存级别的不同,它将加快运行速度。

要了解如何做到这一点,我们将通过CircleCI配置文件中去节逐节(存储在.circleci / circle.yml),config.yml在.circleci的完整列表,请参阅提交df28ee7为源变化。

解释配置文件的各个部分

配置文件中的以下几行将确保缓存我们已安装的应用程序(指两个特定的目录),这样我们就不必在每次构建时都重新安装依赖项:

 dependencies: 
       cache_directories: 
         - "vendor/apt" 
         - "vendor/apt/archives" 

我们将通过其全名来引用Docker映像(在http://hub.docker.com上可使用所使用的帐户名– acceptopenjdk )。 在这种情况下,这是一个包含JDK8的标准docker映像,由Adopt OpenJDK构建场背后的好人提供。 从理论上讲,只要支持构建过程,我们就可以使用任何图像。 它将充当我们将在其上安装必要依赖项的基础层:

 docker: 
           - image: adoptopenj
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值