一、序言
Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面。
所谓自动化构建是按照一定的策略执行打包脚本,相对于普通脚本构建,Jenkins 有如下优势:
- 构建队列中能够同时构建多个项目,包含前端和后端项目;
- 定时构建;
- 代码仓库触发构建(普通脚本无法实现);
Jenkins 体现一种项目管理思维:开发人员的贴心助理,集中精力专注于业务开发;尽早的实现代码集成(包含前后端)以便尽早发现问题;构建环境与开发环境隔离,为向生产环境迁移做好充足的准备。
构建过程全程自动化进行,无人工参与,配合 Docker 容易实现高效的项目部署与迁移。
二、安装与使用
Jenkins 是一个工具,既然是一个工具,便有相应的替代方案,因此不需要花工作的时间琢磨这个工具是如何工作的,将精力放在如何利用 Jenkins 提高敏捷开发效率上更有意义。
实践过程中,将项目的脚本化构建用 shell 编写成命令脚本,并附加在项目中,即使不使用 Jenkins,通过执行 shell 脚本也能够实现项目的自动化构建。这么做主要有如下考虑:
- 增强拓展性
即使没有 Jenkins,项目也能完成构建,增加构建的拓展性
- 减少对 Jenkins 的依赖
让 Jenkins 承担实践调度的角色,具体构建过程由标准化的脚本来完成。
既然 shell 脚本能够完成自动化构建,那么还需要用到 Jenkins 吗,是否冲突?答案是不冲突。shell 脚本配合 Jenkins 使用有两大方面优势:
- 使用 shell 脚本必须登录目标服务器,拥有相应的权限后,方能执行 shell 脚本,Jenkins 能够实现在不登录目标服务器的基础上,使用一对账号和密码,管理可视化的 Web 操作界面触发构建事件。
- 按需构建,开发者在提交完代码后,向 Jenkins 服务器发送一个信号,便可触发构建。
(一)安装
使用[传送门]快捷安装,启动后使用安装推荐插件,内置国内插件源,安装速度较快。
1、查看初始密码
cat ~/.jenkins/secrets/initialAdminPassword
2、修改默认工作空间
默认工作空间路径为~/.jnkins
,运行 Jenkins 程序的用户空间下