jenkins自动构建javamaven项目
公司上jenkins已经大半年了,一直没抽出时间来写一下搭建过程,今天得空记录一下整个搭建过程
安装环境
主机名 | 操作系统 | IP地址 | 安装应用 |
---|---|---|---|
vm03 | CentOS 7.9.2009 | 192.168.0.247 | jdk、jenkins、maven |
vm09 | windows server 2003 | 192.168.0.8 | svnserver |
vm01 | CentOS 7.9.2009 | 192.168.0.249 | java应用 |
实现效果
jenkins拉取svnserver中的java代码,并使用maven进行编译打包,打包成功后将jar包发送到目标服务器并运行,整个过程我们只需要用鼠标点一下任务的构建按钮,其它全由jenkins自动完成
安装jenkins
安装的是 Jenkins 2.277.3 也是当时的最新版本
官方安装文档里安装的是openjdk,为了跟公司项目统一环境,采用的是 oracle 的 jdk8
将jdk安装包 jdk-8u201-linux-x64.tar.gz 上传至 /usr/local/src 并解压
mkdir /usr/local/java
tar -zxvf /usr/local/src/jdk-8u201-linux-x64.tar.gz -C /usr/local/java
配置环境变量
vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
重新刷新环境变量
source /etc/profile
查看jdk版本
[root@vm03 ~] java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
[root@vm03 ~]
安装jenkins并启动
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
systemctl daemon-reload
systemctl start jenkins && systemctl enable jenkins
安装好jenkins后,使用浏览器打开 http://192.168.0.247:8080 出现安装向导,如下图,按照提示往下走即可
安装maven
将maven二进制包 apache-maven-3.8.1-bin.tar.gz 上传至 /usr/local/src 并解压
tar -zxvf /usr/local/src/apache-maven-3.8.1-bin.tar.gz -C /usr/local
mv /usr/local/apache-maven-3.8.1 /usr/local/maven
配置环境变量
vi /etc/profile.d/maven.sh
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
重新刷新环境变量
source /etc/profile
查看版本
[root@vm03 ~] mvn --version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /usr/local/maven
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_201/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
修改maven配置文件,这里放上关键配置段,可以看到软件仓库修改为http://localhost:8081/repository/maven-public/这是使用 nexus 搭建的本地maven仓库用来加快构建速度,当然你不想搭建本地仓库的话,也可以使用阿里云的maven仓库https://developer.aliyun.com/mvn/guide速度也是很不错的
cd /usr/local/maven/conf
vi settings.xml
/usr/local/maven/repository
hckj_nexus
*
http://localhost:8081/repository/maven-public/
hckj_nexus
hckj_nexus_public
http://localhost:8081/repository/maven-public/
true
true
hckj_nexus_public
http://localhost:8081/repository/maven-public/
true
true
hckj_nexus
配置jenkins
接下来的配置就可以使用 jenkins 的web界面来操作了,登陆http://192.168.0.247:8080
1、在 系统管理–全局工具设置填入maven的配置文件路径
填写jdk的安装路径
填写maven的安装路径
2、安装jenkins插件,在 系统管理–插件管理安装如下三个插件
- Maven Integration
- Publish Over SSH
- Subversion
3、在系统配置的Publish over SSH部分添加目标服务器信息
新建任务
1、新建任务
2、输入任务名称(注意任务名称最好按一定的规律来命名,防止后期任务多了容易混淆),点击构建一个maven项目再点击确定
3、在描述中可以填写项目的相关信息,然后勾选丢弃旧的构建这里我选择保持构建的最大个数为 7 ,表示构建的历史记录只保存7份,超过7份会自动把最早的构建删除,这样可以保证不会因为历史构建太多而占用太多磁盘空间
4、在源码管理勾选Subversion然后填写项目svn的地址,注意地址最后需要添加 @HEAD 这样每次构建才会拉取最新代码,在Credentials里添加svn账号
5、在Build里填写好maven构建参数
6、在Post Steps中配置构建成功后jar包怎么传输和怎么部署
- SSH Server:目标服务器,也就是构建好的jar包要传到哪台服务器部署
- Source files:这是构建成功后jar包的路径
- Remove prefix:这是将 Source files 去除指定前缀,也就是将jar包的路径去除,只剩文件名
- Remove directory:jar包传到目标服务器时的保存路径,这里我们填写的根路径 / 也就是 192.168.0.249 的 /home/jenkins_data 路径
- Exec command:jar包传到目标服务器成功后,在目标服务器执行的命令,如下图我们执行了重命名jar包、也执行了 /usr/local/sbin/app 脚本,此脚本是自己编写的shelll脚本用于更新并启动jar包(多次构建时会自动将新jar包替换老jar包并启动)
填写好后点击保存即完成任务的创建
构建任务
点击立即构建即可开始构建任务
点击Build History下面的数字条目进入该次构建的详细信息
点击控制台输出即可看到本次构建详细日志
如下图,通过日志可看出已经构建成功
一 jenkins是什么?
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
持续集成部署神器:Jenkins
Jenkins系列之使用webhooks进行自动部署-Gitee篇
DevOps想必各位研究技术的小伙伴已经耳熟能详了吧,那么今天我们就通过Gitee上的webhooks进行自动触发Jenkins的url达到项目自动部署的目的,