通过Jenkins发布Java项目到目标主机上

一、用Jenkins发布一个项目

创建项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击完应用之后点击save保存,项目就创建完成了

创建完项目之后点击构建就会显示效果
在这里插入图片描述
在这里插入图片描述
绿色代表成功,点击log可以查看日志
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
查看输出
在这里插入图片描述
下面还有个流水线步骤,告诉你一步一步的该做什么
在这里插入图片描述
点击回放,可以查看脚本的语法
在这里插入图片描述

二、用命令拉取java项目

手动部署

Jenkins发布项目
克隆项目地址

在这里插入图片描述

主机名字IP职责
manage/客户端192.168.91.134Jenkins+gitee
server/服务端192.168.91.35tomcat

tomcat部署博客

[root@manage ~]#  yum -y install git maven
[root@manage ~]# cd /opt/

// 克隆项目
[root@manage opt]# git clone https://gitee.com/forgotten/tomcat-java-demo.git

// 打包成war包
[root@manage tomcat-java-demo]# cd tomcat-java-demo/
[root@manage tomcat-java-demo]# mvn package -Dmaven.test.skip=true
[root@manage tomcat-java-demo]# ls
Dockerfile  README.md  deploy.yaml  pom.xml  target
LICENSE     db         jenkinsfile  src

[root@manage tomcat-java-demo]# cd target/
[root@manage target]# ls
classes
generated-sources
ly-simple-tomcat-0.0.1-SNAPSHOT
ly-simple-tomcat-0.0.1-SNAPSHOT.war
maven-archiver
maven-status

// 包名过长,修改名字
[root@manage target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war myapp.war
[root@manage target]# ls
classes                          maven-archiver
generated-sources                maven-status
ly-simple-tomcat-0.0.1-SNAPSHOT  myapp.war

// 备份文件
[root@manage target]# cp -r /usr/local/tomcat/webapps/ /opt/
[root@manage target]# ls /opt/
tomcat-java-demo  webapps


// 做免密登录
[root@manage target]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vjL17Ql28yQICvvXdW7rZwwFan/2Yi5Nci1YFtR2R20 root@manage
The key's randomart image is:
+---[RSA 3072]----+
|             ..oo|
|              o E|
|             . =o|
|            o o .|
|    .   S  . = o |
|     o o.. .+ B +|
|    . ...o+o+B.*.|
|     .o .oooo** =|
|      .+.  .o*== |
+----[SHA256]-----+

[root@manage target]# ssh-copy-id root@192.168.91.135
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.91.135 (192.168.91.135)' can't be established.
ECDSA key fingerprint is SHA256:KFiIOIWcPnGezVy7tHXuBYveeiysn0kVedxN8fU+XjM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.91.135's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.91.135'"
and check to make sure that only the key(s) you wanted were added.

// 传输
[root@server ~]# ls /usr/local/tomcat/webapps/
ROOT  amu  docs  examples  host-manager  manager

[root@manage target]# scp myapp.war root@192.168.91.135:/usr/local/tomcat/webapps/
myapp.war                 100%   17MB 130.1MB/s   00:00    

// 传输过去的war包会自动解压
[root@server ~]# cd /usr/local/tomcat/webapps/
[root@server webapps]# ls
ROOT  docs      host-manager  myapp
amu   examples  manager       myapp.war

访问myapp页面
在这里插入图片描述
项目部署成功

自动部署

1、公有仓库部署

点击demo
在这里插入图片描述

点击配置
在这里插入图片描述
在这里插入图片描述
下载包位置
在这里插入图片描述

流水线脚本配置

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git "https://gitee.com/jinchenghe92/tomcat-java-demo.git"  // 下载包的位置

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"   // 打包方式
                sh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war"  // 修改包名

                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }


        }
        stage('publish'){
            steps{
                //sh "root@192.168.91.135 'tar Jcf /opt/backup/myapp-\$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/myapp'"                // 备份数据
                sh "scp target/myapp.war root@192.168.91.135:/usr/local/tomcat/webapps/" // 传输包
                sh "ssh root@192.168.91.135 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'"      // 重启服务
            }
        }
        
        
    }
}

然后点击应用之后保存

进行构建,绿色就是访问成功了
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、私有仓库部署

gitee使用介绍

点击管理进入配置设置私有仓库
在这里插入图片描述

在这里插入图片描述

流水线脚本配置

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git credentialsId: '3096bfc5-8973-45b8-8070-7db925c5b544', url: 'https://gitee.com/amxnh/tomcat-java-demo.git'   //生成的私有仓库用户名和密码,用的私有仓库就加这个

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"   // 打包方式
                sh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war"  // 修改包名

                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }


        }
        stage('publish'){
            steps{
                //sh "root@192.168.91.135 'tar Jcf /opt/backup/myapp-\$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/myapp'"                // 备份数据
                sh "scp target/myapp.war root@192.168.91.135:/usr/local/tomcat/webapps/" // 传输包
                sh "ssh root@192.168.91.135 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'"      // 重启服务
            }
        }
        
        
    }
}

私有仓库拉取代码

在这里插入图片描述

在这里插入图片描述
将生成的用户名和密码脚本带入到流水线脚本中即可

最后进行构建,绿色就是成功了
在这里插入图片描述
在这里插入图片描述


版权声明:本文为Gf19991225原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。