Jenkins+Maven+Git 自动部署 Java 应用(编译)

Anton Chen | 2016-02-24

Jenkins+Maven+Git 自动部署 Java 应用(安装)
Jenkins+Maven+Git 自动部署 Java 应用(配置)
Jenkins+Maven+Git 自动部署 Java 应用(编译)

接上文
设置好 Jenkins 后我们来尝试编译一个应用。

新建项目

打开 http://IP:8080 选择 新建 创建一个项目。这里因为我厂使用 Maven 管理项目,所以选择构建一个 Maven 项目。如果你们在使用其它的方式管理项目请自行研究。
当然 Jenkins 可以把多个版本库配置在一个项目中,主要是依赖项目这样做。但依赖项目也可以设置上下游关系来做依赖管理,个人感觉一个应用创建一个项目比较好。
新建任务
创建后自动跳转到配置页,找到 源码管理 项选择 Git,填写地址,同样这里 Jenkins 会检测 Git 地址是否正确,因为我没有配置账户所以报错了,点击 Add 按钮添加账户。
设置版本库
在 Git 上最方便的莫过于使用 SSH 密钥,这里我以密钥为例讲解。
设置 Git 密钥
添加完密钥之后就可以选择认证方式了,这里选择刚刚配置好的密钥,设置分支。
设置 Git

版本库到这里就设置好了,接下来设置 Maven

Maven 设置很简单,设置 pom.xml 在源码中的位置,以及编译参数就可以了,最后保存所有设置。
设置 Maven

到这里所有的项目设置就完成了,接下来尝试编译下。不过在编译之前我严重建议大家把 Maven 的源地址改为国内的,这里就不在赘述了。

编译

进入要编译的项目选择 立即构建,然后再下面 构建历史 就会出现如图一样的编号,点击编号查看详情。
构建
打开详情后可以查看控制台输出,第一次编译 Maven 项目 Maven 会自动下载编译依赖。
构建详情
回到项目页,可以打开 工作空间 查看或下载编译后的文件,当然可以连同依耐一起下载,同样在 构建历史 中可以通过圆点颜色查看编译状态。
构建结果

自动部署?

在项目中可以配置编译后的执行脚本,可以通过代码更新到 Git 触发编译。如图所示这是设置编译后可以操作的东西。
第一行解释:
- Run only if build succeeds = 编译成功
- Run only if build succeeds or is unstable = 编译成功但有问题
- Run regardless of build result = 编译失败执行
编译后执行

结论

研究 Jenkins 一段时间后发觉用它直接做自动部署(升级)有些不太可靠,主要是因为人的原因。Jenkins 支持定时、钩子等触发编译方式,如果做自动部署(升级)那么开发的一个失误就能导致线上业务的不稳定,甚至是全线崩溃。
综合考虑的结果是 Jenkins 在生产环境中编译应用解决依耐关系,通过 Jenkins 的 API 用 Python 做手动触发部署(升级)。
以上说法是针对生产环境

本系列到此完结,后续更新 Jenkins 估计是利用 Jenkins API 写自动化部署平台。
如有错误欢迎指正。

修订记录

  • 暂无