写点什么

「开源人的福音」一键部署 Java 构件到 Sonatype

作者:Jianmu
  • 2022 年 5 月 30 日
  • 本文字数:1350 字

    阅读完需:约 4 分钟

「开源人的福音」一键部署Java构件到Sonatype

介绍

作为一个 java 开发人员,我相信大家都有这样的需求,将自己的构件(例如 jar 包)部署到中央仓库,以便与其他开发人员和项目共享。如果我们使用 maven 作为 java 项目管理工具,通常我们的做法大致有以下几步:

  1. 在项目 pom 里面配置相关的远程仓库信息以及一些必要的插件

  2. 在 setting.xml 里配置远程仓库的账号密码

  3. 使用 gnupg 生成公私钥对部署的文件进行签名

看整个过程显得冗长复杂,但是现在大家不用担心,因为建木 CI 给大家提供了节点去完成这一系列的事情,只需要一些声明式的配置,即可大大缩短配置 java 构件的部署时间,让开发人员专注于业务开发,所以让我们搭上建木 CI 的小船驶向远方

以下流程省略开发者在 Sonatype 上注册账号提交工单(提一个上传 jar 包的申请) 的流程,快进到部署环境

部署构件到中央仓库

想必大家对如此复杂冗长的流程已经开始不满了,下面将介绍如何使用建木 CI 来自动化、声明式地完成这一切。

建木 CI 是一个节点编排工具,通过编排节点来实现一系列的需求。此次部署构件到远程仓库也是通过编排节点来达到目的

编排节点就像大厨炒菜,首先要进行原材料的选择,下面介绍一下本次自动化部署使用的三个节点

  • git clone 节点

git 是一个版本管理工具,git clone 节点用于将我们的项目从远端仓库上拉取下来,版本选用最新的1.2.3

  • gnupg 节点

如果我们需要对 jar 进行签名,我们可能需要使用 gnupg 来生成公私钥(如果我们事先已经准备好了,则不需要此节点)。既然要生成公私钥,那么我们选用此节点生成公私钥,版本为1.0.0_gen-key

  • sonatype 节点

我们选用此节点来进行项目的部署,目前仅支持使用 maven 工具管理的项目发布到远程仓库,版本为1.0.0-maven3.8.5_jdk11


选好的节点如下图所示:



原材料准备好了那么我们开始准备加调料,也就是填充参数构建流程的过程:

此次我们使用图形化编排功能编辑此测试流程(ps:图形化编排是建木 CI 2.4.0 推出的重磅级功能,详见「v2.4」千呼万唤的图形化编排,来了!

首先编辑项目信息



然后开始往所有节点填充参数

  • git clone 节点

点击节点图标往右侧抽屉里填充参数,如下图:


配置好我们项目的 git 地址即可

  • gnupg 节点

同样,点击节点图标往右侧抽屉里填充参数,如下图:



配置好必要的参数,用于生成公私钥

  • sonatype 节点

重复上述的操作,点击节点图标往右侧抽屉里填充参数




  • 这里有一个小细节,聪明的小伙伴都看出来 sonatype 节点某些输入参数使用了前面节点的输出参数(比如,项目目录、gpg 路径参数)这里想要使用前面节点的输出参数,那么必须先将这几个节点连上线,如下图:



  • 然后选择上游节点的输出参数,如下图



到这里我们就完成了图形化编排 maven 部署 java 构件的流程

那么既准备好了原材料(节点选型),又加好了调料,接下来就到了激动人心的炒菜环节,启动流程:



流程正在运行中:



流程运行成功,查看每个节点的运行日志

git_clone 节点:



gnupg 节点:



sonatype 节点:



到中央仓库查看刚刚部署的 java 构件:



至此,我们已经使用建木 CI 成功将 java 构件部署到了中央仓库上!

结尾

想必大家对图形化编排非常感兴趣,其实图形化编排流程底层也是生成了一个流程 DSL,如果想参考本次测试流程具体生成的 DSL,可以移步此处java构件部署到中央仓库流程DSL


本文为建木博主「free」的原创投稿文章,转载请联系授权。


项⽬官⽹:https://jianmu.dev


项⽬托管:https://gitee.com/jianmu-dev


项⽬文档:https://docs.jianmu.dev

用户头像

Jianmu

关注

国产开源CI/CD产品 2020.08.10 加入

建木持续集成平台基于建木,致力于为国内开发者与DevOps人员提供极致用户体验,提升开发、上线、运维的效率,让软件用户专注于提供业务价值。

评论

发布
暂无评论
「开源人的福音」一键部署Java构件到Sonatype_后端_Jianmu_InfoQ写作社区