Centos7 Git+Jenkins+Maven发布

本文详细介绍了在Centos7环境下,利用Jenkins配合Git、Maven进行自动化构建和部署的过程。从环境搭建到插件配置,再到具体案例分析,全面展示了如何高效实现Java项目的持续集成。

准备工作

Gitlab

这里就不在阐述如何安装、升级迁移
Gitlab最新版本安装
Gitlab指定版本安装
Gitlab版本升级
Gitlab数据迁移

Java环境

用于运行jenkins、启动微服务等

Server JRE

是专为服务器端程序量身打造的, 只包含JRE/JDK中最常用的那部分功能.。为了做到简单,Server JRE不使用安装包, 而是一个绿色版的压缩文件。

JDK(Java Development Kit)

又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括一堆Java工具tools.jar和Java标准类库。

JRE(Java Runtime Enviroment)

是Java的运行环境。面向Java程序的使用者,而不是开发者。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

Java↓下↓载↓地↓址(默认Server JRE)
SERVER JRE下载地址
JDK下载地址
JRE下载地址

Jenkins↓下↓载↓地↓址
官网下载地址①
官网镜像下载地址②

Tomcat↓下↓载↓地↓址
官网下载地址

Maven↓下↓载↓地↓址
官网下载地址

选择版本

一般我都选择最新的,根据自己需求看着来

Tomcat

这边我已经下载jdk-8u121-linux-x64.tar.gz并配置了java环境变量了(这个过程不再阐述)

mkdir -p /data && cd /data 
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz && tar -zxf apache-tomcat-9.0.27.tar.gz
#tomcat的配置文件在conf/server.xml 里面包含了监听端口(默认端口是8080),jar包目录等
mv apache-tomcat-9.0.27 tomcat

Jenkins

#下载jenkins.war包
wget http://mirrors.jenkins.io/war/latest/jenkins.war -P /data/tomcat/webapps/
#启动tomcat
/data/tomcat/bin/startup.sh
#用什么用户启动的jenkins,那么它的数据就会存在在启动用户下的.jenkins中,例如root用户启动的jenkins,那么数据就存放在/root/.jenkins
#访问jenkins,通过浏览器访问服务端的ip:8080/jenkins

回头在写 现在没空
#确认管理员,输入cat后的密码

cat /root/.jenkins/secrets/initialAdminPassword

在这里插入图片描述
#点击继续后,选择推荐插件安装就行,有特定需求的话 可以自定义选择插件安装
#推荐安装后,若有部分安装失败的,点击继续就行,后续可以按需在线安装插件。
#创建一个管理员账号

#点击保存并完成,URL地址就默认的,不需要改,继续下一步,完成,点击重启即可。
在这里插入图片描述
#根据之前操作重启完成后,如果还处于加载页面,就F5刷新一下,即可进入jenkins页面
在这里插入图片描述
#登录后的页面
在这里插入图片描述

案例

#接下来尝试发布一个项目,以开源的一个java程序xxl-job(定时任务调度)为例
#首先我们要想到的是步骤
①通过git clone拉取代码
②通过maven编译打包java代码
③通过java命令启动jar包

拉取代码

首先我们需要安装git,maven,java环境,

在服务器上面安装git

yum install git -y   

在服务器上面安装maven

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz -P /data/
cd /data && tar -zxf apache-maven-3.6.2-bin.tar.gz && mv apache-maven-3.6.2 maven
ln -s /data/maven/bin/mvn /usr/bin/mvn
#测试
mvn -v 

java环境

#安装tomcat 的时候已经安装过了,不再阐述

jenkins的全局工具配置

在jenkins上点击系统管理-全局工具配置
配置maven jdk git
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jenkins的插件管理

因为我们需要构建一个maven项目来编译代码,所以需要安装maven插件
在jenkins上点击系统管理-插件管理-可选插件-搜索Maven Integration直接安装即可,接下来就可以构建
一个maven项目的任务了

jenkins的maven项目构建

任务名称设置为test-xxl-job-admin,选择构建一个maven项目,创建。
源码管理选择-Git
代码仓库的URL输入https://github.com/xuxueli/xxl-job.git
因为该项目是大佬开源的,所以没有密码,分支默认选择master
在这里插入图片描述
构建过程,输入clean package -Dmaven.test.skip=true,作用是清理旧源码,打包,跳过测试模块

保存,点击立即构建
在这里插入图片描述第一次编译,打包应该是非常慢的,因为这个程序有依赖的许多jre包,在本地私服仓库是没有的,于是maven会从repo.maven.apache.org官网去下载,那么速度肯定会慢(可以自己搭建私服例如,nexus,搭建完成后由开发上传jre包,并修改maven的私服仓库url配置,这里就不在详解了,一切从简)
在这里插入图片描述
大约15分钟左右 打包完成了,打包完成后,jar包的路径可以看一下在这个位置

  • /root/.jenkins/workspace/test-xxl-job-admin/xxl-job-core/target/xxl-job-core-2.1.1-SNAPSHOT.jar
    在这里插入图片描述
    那么我们编译打包的动作已经完成了。

jenkins的java项目启动

接下来我们想要的就是,将编译打包完成的jar包移动到指定位置启动,或者说是传输到某台服务端的服务器上启动这个项目。我来演示传输到目标主机,并以test用户启动这个项目

创建test用户

在jenkins服务器上创建用户

useradd test
#设置密码
echo 'justtest' | passwd --stdin test
安装插件并配置任务

在jenkins上操作,系统管理-插件管理-可选插件,输入Publish Over SSH 并直接安装
安装完成后,系统管理-系统设置-Publish over SSH 中的SSH Server-新增
Name表示别名
Hostname表示目标服务器IP
勾选使用密码验证,或者使用秘钥,这边我是怎么方便怎么来的。
输入密码,下面还可以指定SSH端口
在这里插入图片描述
完成后测试是否可以登录,点击Test Configuration,并保存。
在这里插入图片描述
接下来回到test-xxl-job-admin这个maven项目-配置
移到最下方的构建后操作-Send build artifacts over SSH
选择该maven任务需要推送到的目标服务器,这边我只有一台就选择这个Name
在这里插入图片描述
接下来是取源文件,也就是之前说的这个编译打包完成的jar包

  • /root/.jenkins/workspace/test-xxl-job-admin/xxl-job-core/target/xxl-job-core-2.1.1-SNAPSHOT.jar
    Source files 表示 拉取下来打包完成后的jar包的名字
    Remove prefix 表示取jar包名
    Remote directory 表示移动到哪个目录下,这边我们没用到,直接通过shell名来解决这个问题
    Exec command就是在目标主机上执行的SHELL脚本
pid=`ps -ef | grep -E "$JOB_BASE_NAME" | grep "test" | grep -v -E "tail|grep|$0" | awk '{print $2}'`
kill  $pid
mkdir -p xxl-job
cd ~/xxl-job && pwd
echo $pid  >> xxl-job.log
mv ~/xxl-job*.jar ~/xxl-job/xxl-job.jar
nohup java -jar  -Duser.timezone=Asia/Shanghai xxl-job.jar >>xxl-job.log 2>&1 &

在这里插入图片描述
保存后就可以开始构建项目了

构建项目

过一会儿就可以看到jar包传输到这里来了,并且启动了,这边因为我没有弄数据库,日志里面有报错,这边我就不贴出来了。(解决思路就是查看这个程序的配置文件,看看数据库要求是啥,建一个mysql,配置文件中配置mysql的连接地址,账号密码)
在这里插入图片描述

结束语

jenkins有很多有意思的插件如Git Parameter ,构建的时候可以选择分支。
如pipline流水线式构建,可以自定义步骤,很清晰的就能看到,哪一步花费了多少时间,轻而易举的找出问题,并针对性解决问题。下面是我写的Pipline文档,有兴趣可以看看
Centos7 Jenkins Pipline 浅入浅出

在这里插入图片描述
在这里插入图片描述
devops之路,任重而道远。

(666x)' +666'
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大锅霍皮久

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值