您的位置:首页 > 编程语言 > Java开发

Jenkins部署java-maven项目

2018-03-19 15:49 465 查看

Jenkins部署java-maven项目

Jenkins是什么?

Jenkins是一个用java编写的开源的持续集成平台。

首先理解几个概念

持续集成(Continuous Integration),在传统的软件开发中,项目的整合是在项目开发结束所有人提交了代码之后。而持续集成,是在项目的开发过程中不断地进行环境构建、功能的测试与集成。

持续交付(Continuous Delivery),每次对代码进行了更改,会自动在当前环境中进行测试,然后提交给下一个更接近正式的工作环境进行测试。

持续部署(Continuous Deployment),每次对代码进行了更改,通过了所有的测试,都会将其部署到正式环境中。

我的理解:项目周期 = 程序开发 + 环境部署 + 功能测试 + 项目上线。一个完整的项目,从开发到上线要经过多次的测试、调优。一个多人开发的项目,如果项目开发与运维分开,那最后的项目整合一定是痛苦的。而持续集成的作用就是:在项目的开发过程中不断地进行环境构建、功能的测试与集成。也就是说开发与运维在同时进行,项目如果会出现问题是在第一时间发现的,而不是等到将要上线时一大堆问题才引面而来。

项目持续集成的流程图



多人开发的项目,代码提交(CHECK-IN)到版本库(SOURCE REPOSITORY)后,集成工具Jenkins能够进行: 环境的构建(BUILD) | 测试环境(TEST)的功能测试 | 过渡环境(STAGING)的功能测试 | 正式环境(PRODUCTION)的功能测试。这种流水线式的流程,能够保证项目中的BUG及时被发现(在正式环境测试之前)。

传统的项目开发周期



持续集成的项目开发周期



还想深入了解持续集成、持续交付、持续部署,可参考什么是持续集成

Jenkins的简要运用

环境配置

我的目的是:在虚拟机上用Jenkins部署java-maven项目。因此,需要先配置JDK,MAVEN环境。

JDK配置

# 获取本机的位数
getconf LONG_BIT
# 我的虚拟机:64位。下载的jdk版本为(Linux64 jdk-8u161-linux-x64.tar.gz),将压缩包放在(/usr/local/env/java8)下,进行解压
cd /usr/local/env/java8
tar -xzvf jdk-8u161-linux-x64.tar.gz

# 编辑/etc/profile
vim /etc/profile
# 加入如下配置
export JAVA_HOME=/usr/local/env/java8/jdk1.8.0_161
export JRE_HOME=/usr/local/env/java8/jdk1.8.0_161/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
# 保存退出后,使该配置文件即刻生效
source /etc/profile

# 使用如下命令,能正确显示信息,说明环境配置成功
java -version


如果安装的版本不对,会报错如下:-bash: /usr/local/env/java8/jdk1.8.0_161/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录,需要根据自己虚拟机位数选择正确的JDK安装包。

MAVEN配置

# 在官网下载(apache-maven-3.5.3-bin.tar.gz),将压缩包放在(/usr/local/env/maven),进行解压
cd /usr/local/env/maven
tar -xzvf apache-maven-3.5.3-bin.tar.gz

# 编辑/etc/profile
vim /etc/profile
# 加入如下配置
MAVEN_HOME=/usr/local/env/maven/apache-maven-3.5.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
# 保存退出后,使该配置文件即刻生效
source /etc/profile

# 使用如下命令,能正确显示信息,说明环境配置成功
mvn -version


出现如下页面说明环境部署成功:



安装Jenkins

# 导入最新版jenkins的资源
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo # 获取最新版jenkins的密钥(证书错误的信息可以忽略)
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key # 安装jenkins
yum install jenkins

# 由于jenkins提供的服务默认暴露在8080端口,可能被占用。
# 修改配置文件
vim /etc/sysconfig/jenkins
# 改为在8081端口提供服务
JENKINS_PORT="8081"

# 修改jdk配置
vim /etc/init.d/jenkins
# 在candidates=""中加入JAVA_HOME
/usr/local/env/java8/jdk1.8.0_161/bin/java

# 启动jenkins服务
service jenkins start


安装Jenkins成功后,Jenkins的目录结构如下:

功能模块路径
主目录/var/lib/jenkins
war包/usr/lib/jenkins/jenkins.war
配置文件/etc/sysconfig/jenkins
启动脚本/etc/init.d/jenkins
日志/var/log/jenkins
访问jenkins_server_ip:8081可看到如下页面:



第一次使用Jenkins,需要核对密钥,该密钥在上述路径的文件中。



将该密码复制粘贴到输入框中,点击继续。进入如下页面,直接选择安装推荐的插件



这些插件,都是协助jenkins进行项目的集成的。



插件安装成功后,后跳转到用户注册页面—ps:之前用的是管理员身份,注册成功后,请牢记身份和密码。



注册之后,重新启动jenkins

service jenkins stop
service jenkins restart


再次访问jenkins_server_ip:8081,能够进入jenkins的主界面如下:



安装如下插件:

系统管理 > 管理插件 > 可选插件 > Maven Integration



系统管理 > 全局工具配置 中指定需要的JDK以及MAVEN(名称可以随便指定,这里为了增加可读性,分别配置如下: java8:/usr/local/env/java8/jdk1.8.0_161 , maven3.5.3:/usr/local/env/maven/apache-maven-3.5.3),这里的地址就是java8,maven3.5.3在虚拟机上安装的地址

JDK



MAVEN



部署项目—learnjenkins

在所有必需的插件安装成功后,点击新建一个maven项目如下:



对该项目进行如下配置

General



源码管理(这里的URL是我在github上新建的一个用来学习jenkins的maven项目)



构建触发器(每次有代码提交到GitHub时,进行构建)



Build(构建时,进行打包)



其余的配置,可以根据实际需求进行改动。

点击应用。返回主界面,可以点击立即构建。点击控制台输出,构建成功后的日志如下:



构建成功后,再次修改代码如下:



3分钟后,发现Jenkins检测到了GitHub上项目版本的更新,并自动帮我们进行了构建。



总结

现在,已经实现了Jenkins帮助我们进行项目的自动构建。由于我们现在开发的项目是由SVN控制,并部署在Docker上。

因此,下一步的计划是:

改用SVN进行版本管理

整合Jenkins与Docker
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐