Jenkins+Git+Maven自动化部署配置

Jenkins+Git+Maven自动化部署配置

  • 基本思路
  • 1、jenkins安装maven依赖
  • 2、git安装
  • 3、Jenkins中新建任务
    • 3.1 git配置
    • 3.2 maven配置
    • 3.3 pom.xml配置
    • 3.4 build
  • 4、自动化发布到测试服务器并自动执行(Test-server)
    • 4.1 安装Publish Over SSH插件
    • 4.2 修改Post Steps配置
    • 4.3 执行构建
  • 5、小插曲
    • 4.1 构建的时候报错找不到jdk
    • 4.2 阿里云镜像配置
    • 4.3 配置testserver之后构建异常

基本思路

Jenkins+Git+Maven自动化部署配置_第1张图片

服务器配置如下:

192.168.159.50 gitlab服务器(Gitlab,内存至少5个G,要不根本跑不动)

192.168.159.51 jenkins服务器(Jenkins-Server+Maven+JDK)

192.168.158.52 测试服务器(JDK)

1、jenkins安装maven依赖

Jenkins+Git+Maven自动化部署配置_第2张图片

Jenkins+Git+Maven自动化部署配置_第3张图片

2、git安装

git安装

这里先在jenkins这台机器上装个git

yum install -y git

Jenkins+Git+Maven自动化部署配置_第4张图片

3、Jenkins中新建任务

新建一个任务,这里选择构建一个maven项目

Jenkins+Git+Maven自动化部署配置_第5张图片

项目名称写first

Jenkins+Git+Maven自动化部署配置_第6张图片

3.1 git配置

Jenkins+Git+Maven自动化部署配置_第7张图片

输入项目地址(就是我们在自己gitlab服务器上的项目地址)

Jenkins+Git+Maven自动化部署配置_第8张图片
选择分支,看你的是master分支还是main分支
Jenkins+Git+Maven自动化部署配置_第9张图片

3.2 maven配置

这里写你jenkins服务器上的maven安装位置:我的是/usr/local/maven

Jenkins+Git+Maven自动化部署配置_第10张图片

3.3 pom.xml配置

代码仓库中pom.xml的位置
Jenkins+Git+Maven自动化部署配置_第11张图片

这里还要看你pom.xml文件的位置,如果不是直接暴露在仓库最外层,比如在demo目录下,那就要写成demo/pom.xml

3.4 build

点击构建按钮

Jenkins+Git+Maven自动化部署配置_第12张图片

查看控制台输出:
Jenkins+Git+Maven自动化部署配置_第13张图片

看到如下页面说明打包完成了。
Jenkins+Git+Maven自动化部署配置_第14张图片

Dashboard这里也可以看到成功了,并且显示出了曾经成功和失败的时间

Jenkins+Git+Maven自动化部署配置_第15张图片

去jenkins服务器上面查看是否打包成功,如下,可以看到target目录和jar包说明打包成功了

Jenkins+Git+Maven自动化部署配置_第16张图片

运行jar包测试一下

java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8888

Jenkins+Git+Maven自动化部署配置_第17张图片

这个只是个测试项目,只有一个负责测试的Controller,结构大概如下

Jenkins+Git+Maven自动化部署配置_第18张图片

测试下简单的业务类,访问:http://192.168.159.51:8888/index/hello

Jenkins+Git+Maven自动化部署配置_第19张图片

简单业务类的测试也没有任何的问题。这样一个简单的自动化部署就完成了,但是我们还想自动把jar包传到测试服务器(192.168.159.52)上面执行,而不是我们去手动执行jar包。

4、自动化发布到测试服务器并自动执行(Test-server)

4.1 安装Publish Over SSH插件

先在jenkins服务器上安装个插件:Publish Over SSH

Jenkins+Git+Maven自动化部署配置_第20张图片

选中,点击Install without restart

Jenkins+Git+Maven自动化部署配置_第21张图片

4.2 修改Post Steps配置

Jenkins+Git+Maven自动化部署配置_第22张图片

1、由于还没有添加测试服务器,先去System Configuration中配置

Jenkins+Git+Maven自动化部署配置_第23张图片

2、在Configure System菜单里 往下拉,找到Publish over SSH

Jenkins+Git+Maven自动化部署配置_第24张图片

3、添加一台目标服务器:这里我的测试服务器IP是192.168.159.52
Jenkins+Git+Maven自动化部署配置_第25张图片
4、测试下链接是否正常,左下角显示Success说明连接没问题
Jenkins+Git+Maven自动化部署配置_第26张图片

5、再去看Post Steps中,选择Send files or execute commands over SSH

这里就可以看到我们刚才添加的testserver了,如下图所示。

Jenkins+Git+Maven自动化部署配置_第27张图片

6、发布到远程服务器的配置

Jenkins+Git+Maven自动化部署配置_第28张图片

这样让远程测试服务器上的jar包以后台进程方式启动

4.3 执行构建

image-20230108201449189
查看控制台输出

Jenkins+Git+Maven自动化部署配置_第29张图片

查看jar包是否传到了测试服务器上,如下图。

image-20230108201903673

查看测试服务器是否执行了启动jar包的脚本(脚本就是我们在Post Steps配置的那一行)

jps

image-20230108201600380

可以看到,jar包已经被执行了。

验证业务类是否可访问,192.168.159.52:8888/index/hello

Jenkins+Git+Maven自动化部署配置_第30张图片

好了,到此我们已经了解了持续集成和持续部署的基本操作,当然,这些还都是皮毛,后面再研究下。

5、小插曲

4.1 构建的时候报错找不到jdk

默认yum安装java的时候会显示安装的是openjdk1.8,实则实际上只安装了jre

yum install -y java-devel

image-20230107202714630

4.2 阿里云镜像配置

修改/usr/local/maven/conf/settings.xml







  
  ${user.home}/.m2/repository
  

  

  
  
    
    org.mortbay.jetty
  

  
  
    
  

  
  
    
    
    
    
        releases
        ali
        ali
      
      
        Snapshots
        ali
        ali
      
  

  
  
    
    
      
      nexus
      * 
      http://maven.aliyun.com/nexus/content/groups/public/
    
    
      
      nexus-public-snapshots
      public-snapshots 
      http://maven.aliyun.com/nexus/content/repositories/snapshots/
    
    
      
      nexus-public-snapshots1
      public-snapshots1 
      https://artifacts.alfresco.com/nexus/content/repositories/public/
    
  

  
    
    
      development
      
        
          central
          http://central
          truealways
          truealways
        
      
     
        
          central
          http://central
          truealways
          truealways
        
      
    
    
      
      public-snapshots
      
        
          public-snapshots
          http://public-snapshots
          false
          truealways
        
      
     
        
          public-snapshots
          http://public-snapshots
          false
          truealways
        
      
    
  
 
   
    development
    public-snapshots
   

  


4.3 配置testserver之后构建异常

Exception when publishing, exception message [Exec timed out or was interrupted after 120,001 ms]

参考了其他大佬的文章,需要勾选Exec in pty选项

Jenkins+Git+Maven自动化部署配置_第31张图片

然后重新构建就成功了

Jenkins+Git+Maven自动化部署配置_第32张图片

你可能感兴趣的:(Jenkins,maven,Git,jenkins,git,maven,持续集成,持续部署)