Jenkins自动化部署Java及Node JS项目


2022年7月21日上午9点29分| 陈玮东 | 1926

Jenkins是一款由Java编写的开源的持续集成工具,通过友好的操作界面,为项目提供持续、自动的测试和构建功能。Jenkins作为占有率最高的持续集成工具之一,其拥有大量第一方或第三方开发的插件,这为其带来了非常丰富的可能性,正如其图标一般,Jenkins像一个管家般为项目测试及构建提供了一站式服务。随着Docker的兴起,使用Docker技术更是为Jenkins带了极其方便的部署体验,这里不再赘述关于Jenkins部署方法,我们将专注于其在Java和NodeJS项目上的应用。

website/blog/editor/media-iuzjzms.png

一、 Java项目

在构建Java项目之前,我们首先需要知道构建一个Java项目需要安装哪些依赖。毫无疑问,最为重要的就是JDK。Jenkins提供了极其方便的JDK安装方式。在【系统管理】-【全局工具管理】-【JDK】中直接选择需要安装的JDK版本,既可以在线安装SUN版本的JDK,也可以下载安装包上传安装。

website/blog/editor/media-9l5umbw9.png

除此之外,我们还需要Maven来构建项目,并且根据自己代码的托管情况安装对应的代码托管工具,这里我们以Git为例。Jenkins同样提供了类似JDK一样的方式来安装Maven,可以根据自己项目的情况选择Maven版本,同时还能修改settings文件,当然大部分情况我们也可以使用默认的设置。Git也是同样的道理。

website/blog/editor/media-km9cvn0b.png

website/blog/editor/media-cxxjetqf.png

在安装完项目依赖后,我们还需要一个插件来帮助我们把构建完成后的文件部署到服务器上,这里以最常用的Linux服务器为例,我们通常使用SSH将构建后的文件发送到服务器上,我们就需要使用到一个Jenkins的插件,名为【Publish Over SSH】,在【系统管理】-【插件管理】-【可选插件】中搜索并安装该插件即可。

website/blog/editor/media-ix38i62.png

在安装完成【Publish Over SSH】之后,在【系统管理】-【系统配置】中讲新增一个【Publish Over SSH】的配置项,我们需要配置好我们远程服务器的SSH的连接方式。

website/blog/editor/media-eae9y1f.png

我们就可以新建项目了,我们以自由风格软件项目为例。在新建完项目之后我们首先需要配置的就是源码管理,我们需要填写代码所在的Git地址,并且设置分支。在如果是第一次使用,我们还需要通过添加【Credentials】来添加凭证,即设置Git的授权方式,这里强烈推荐使用部署公钥的方式来授权,而不直接使用用户名密码,关于部署公钥的使用,需要查找Git的相关教程。

website/blog/editor/media-xdoyla99.png

website/blog/editor/media-qzvjwgn5.png

在设置Git之后,就可以添加构建步骤了。在【构建】模块中点击【添加构建步骤】,选择【调用顶层Maven目标】添加一个Maven构建指令,选择Maven版本,输入Maven的构建命令,和本地使用Maven方式一样,这里仅作测试使用,不推荐跳过测试。

website/blog/editor/media-td1jx0uk.png

构建完成后需要把构建出来的jar包提交到服务器中,并且重启项目。需要到【构建后操作】添加一个名为【Send build artifacts over SSH】的操作,这个操作便是由先前安装的【Publish Over SSH】插件提供。当项目有多个Module时,可以添加多个步骤来完成各自的部署。

website/blog/editor/media-7si5x8ne.png

自此就完成了Java项目的所有配置,执行构建,通过控制台输出就可以看到项目将被正确打包并成功部署到服务器中。

website/blog/editor/media-xsb4sr2k.png

一、 Node JS项目

Node JS项目和Java项目的区别在于还需要安装Node JS环境,同样是【系统设置】-【全局工具管理】中,找到【Node JS】模块,和安装JDK类似,选择需要的版本即可完成安装。对于Node JS项目,JDK和Maven就无需安装了,不过Git或其版本控制工具仍然需要安装。

website/blog/editor/media-6me3mak.png

和Java项目类似,新建项目,配置Git地址及Git凭证。在安装Node JS环境后,在构建环境中将出现一个名为【Provider Node & npm bin/ folder to PATH】的选项,需要勾选该选项,为项目添加node和npm环境变量。

website/blog/editor/media-1i6ktfya.png

接着在【构建】模块中添加一个【执行shell】步骤,因为我们已经为项目添加了node环境,在这里就可以和本地一样添加npm的构建命令,将Node JS项目完成构建,这里就以Create React App项目为例。

website/blog/editor/media-paqfmld.png

最后再像Java项目一样使用【Send build artifacts over SSH】将构建后的文件发送到远程服务器,这里还是以Create React App项目为例,不同项目可能会有不同的prefix。

website/blog/editor/media-foqrpar.png

完成Node JS项目全部配置后,点击构建,在通过控制台输出如下日志及说明项目已被正确构建及部署。

website/blog/editor/media-ncaxrh8.png