1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

jenkins自动构建javamaven项目

1987web2023-10-06WEB开发104
公司上jenkins已经大半年了,一直没抽出时间来写一下搭建过程,今天得空记录一下整个搭建过程

公司上jenkins已经大半年了,一直没抽出时间来写一下搭建过程,今天得空记录一下整个搭建过程

安装环境

主机名操作系统IP地址安装应用
vm03CentOS 7.9.2009192.168.0.247jdk、jenkins、maven
vm09windows server 2003192.168.0.8svnserver
vm01CentOS 7.9.2009192.168.0.249java应用

实现效果

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下面的数字条目进入该次构建的详细信息

点击控制台输出即可看到本次构建详细日志

如下图,通过日志可看出已经构建成功

参考:https://blog.51cto.com/u_13760351/2381229

https://blog.51cto.com/u_13760351/2382103

一 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达到项目自动部署的目的,