文章目录
- 3. 添加项目
- 3.1 添加凭证-配置git
- 3.1.1 添加凭证
- 3.1.2 验证
- 3.2 添加全局变量-配置jdk和maven
- 3.2.1 添加配置
- 3.2.2 验证
- 3.3 发布
- 3.3.1 项目配置
- 3.3.2 验证
- 3.4 总结
3. 添加项目
首先,我们捋一遍持续集成的流程:
- 开发人员提交代码,到git仓库;
- jenkins作为持续集成工具,使用git工具到git仓库拉取代码到服务器上;
- 配合jdk,maven等工具完成代码的编译,测试,打包等工作;
- jenkins把生成的jar包或war包分别发送到不同的服务器上,部署发布。
3.1 添加凭证-配置git
3.1.1 添加凭证
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。
- 首先,要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件,安装完成后会出现凭证管理的菜单。
- 点击进入后,添加凭证,可以看到类型是有物种不同的类型。第一种用户名和密码和第二种ssh是最常见的两种方式。
- 我们在这里演示添加一个凭证。即:从git仓库拉取代码,首先确保已经在jenkins上安装了git插件,以及在jenkins所在的服务器上也安装了git工具。(git插件只是在添加项目时源码管理的地方可以选择git,实际上当我们点击构建项目时,是服务器上的git工具自动拉取代码到工作目录下)
- 用git的用户名和密码创建凭证,用户名和密码不必多说,id可以不用填写会自动生成,描述是为了使用时能分辨清楚;点击完成创建成功。
- 添加成功后,在创建项目时,就会在源码管理这里看到我们添加的git凭证。
3.1.2 验证
- 我们这里先只拉取代码,验证一下git是否配置成功。创建完成后点击立即构建,在下方可以看到构建历史,点进去可以在控制台看到拉取代码的日志,说明我们已经配置成功。
- 日志的第三行
Building in workspace /usr/local/jenkins/workspace/test01
,这个就是我们拉取到代码的路径,前面是我们jenkins的工作目录,后面是我们项目的名称,所以我们也可以在服务器对应的目录上看到拉取的代码。
3.2 添加全局变量-配置jdk和maven
3.2.1 添加配置
我们之前已经在Jenkins所在的服务器上安装好了maven和jdk。
现在我们还需要在Jenkins的系统配置中添加一些全局变量,这里的配置让Jenkins可以感知到maven的这些命令。
系统配置 -> 全局属性 -> 环境变量
添加的环境变量如下:JAVA_HOME、M2_HOME、PATH+EXTRA(在之前的PATH环境变量的基础上追加新的环境变量)
3.2.2 验证
- 我们在此验证一下刚才的操作,刚才添加的项目test01点开配置
构建 -> 添加构建步骤 -> 执行shell,输入如下命令: - 点击构建,查看控制台输出的日志,可以看到构建成功,说明我们配置的没有问题;同时,也可以在Jenkins服务器的workspace目录下看到我们打包成功了。
3.3 发布
至此,我们已经完成了项目的构建步骤,只剩下最后一步,把打的jar包或其他的包分配到指定的服务器下,然后部署。
这里首先介绍一个Jenkins的环境变量$WORKSPACE,这个变量的定义是
The absolute path of the directory assigned to the build as a workspace.
那么它指的路径到底是什么呢?我们可以创建一个项目验证一下。
可以看到$WORKSPACE的路径就是我们之前在安装Jenkins时说过的JENKINS_HOME/创建项目名称,也就是我们代码的根目录,之后在项目配置时写的相对路径也是从这个地方开始的。
3.3.1 项目配置
- 下载一个插件Publish Over SSH,这个插件可以把指定的文件发送到其他服务器的制定目录下,并执行一些操作。
- 我们需要将包发送到一个测试服务器上,那么就一定需要将这个测试服务器的信息配置到Jenkins上。
系统管理 -> 系统配置 -> Publish Over SSH,配置信息如下:
- Publish over ssh -> SSH Servers -> 新增;
- Name:为了区分不同的服务器,自由命名
- HostName:服务器的地址
- Username:服务器连接的用户名
- Password:服务器连接的密码
- Remote Directory:服务器的目标路径,我们将文件发送到的路径
- 底下可以点击Test Configuration,测试我们的配置是否可以成功连接上,注意:如果Remote Directory指定的路径服务器上不存在,测试结果也是会失败的。测试成功,点击保存。
- 打开我们之前创建的项目,继续编辑配置。
增加构建步骤 -> Send file or execute command over SSH
jar包路径:
配置:
- Name 是我们之前配置的测试服务器的名称,如果之前配置了多个服务器,在这里可以做出选择;
- Source files:jar包的路径,这里可以写相对路径
- Remove prefix:发送文件需要移除的路径,举个例子,我们的jar包的路径是$WORKSPACE/springboot/target/***.jar
那如果我们这里不配置,文件发送到指定服务器后前面的 springboot/target 也会一起被复制过来,显然我们是不需要这个前缀的,所以需要移除这个路径。- Remote directory:发送文件的目标路径,与前面配置的路径结合在一起;因此,我们这个配置中目标路径是/app/myspringboot
- Exec command:这个是可执行的命令,可以写一些脚本,在将文件发送到测试服务器后,在测试服务器上执行此处添加的命令。
这里简单说明下的我写的脚本的意思:首先是得到这个项目的pid,如果项目之前已经部署过了,需要先杀掉这个进程;接下来是java -jar启动jar包,然后等待30秒,再次查看pid,如果启动成功了就会有新的pid,如果没有说明启动失败了。
3.3.2 验证
至此,我们已经配置完成了,点击立即构建,可以在控制台输出查看到最终的构建结果。
- 在Jenkins的构建历史中,可以看到对应的控制台日志中的输出结果。
- 在对应的服务器上看到复制的文件和已部署的进程信息,这也说明我们的操作是成功了的。
3.4 总结
至此,我们已经初步完成了Jenkins的配置和使用,在以后的开发中,当我们提交完代码后,只需要在Jenkins上点击一下构建,就可以完成自动构建部署等操作,是不是非常方便呢?
当然,Jenkins还有很多其他的功能和插件,比如构建触发器、邮件服务、用户权限管理等等,以后有机会在继续学习。