Jenkins部署war包和部署jar包的详细步骤

零、配置Tomcat

默认情况下Tomcat是没有配置用户角色权限的


但是,后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置, 添加用户及权限

vi /opt/tomcat/conf/tomcat-users.xml
# 内容如下:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/> 

用户和密码都是:tomcat 注意:为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

vi /opt/tomcat/webapps/manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
   allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
# 把上面这行注释掉即可!

重启Tomcat,访问测试

输入 tomcat tomcat

配置Tomcat凭证

一、自由风格项目远程部署war包

1.创建自由风格项目

2.增加构建步骤

编译打包

3.增加构建后操作

远程部署

4.立即构建

5.查看控制台输出

二、创建流水线项目远程部署war包

项目选择为Pipeline流水线项目

  1. 概念

Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点
的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

  1. 使用Pipeline有以下好处(来自翻译自官方文档):

代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流 程。 持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。 可停止:Pipeline可接 收交互式输入,以确定是否继续执行Pipeline。 多功能:Pipeline支持现实世界中复杂的持续交付要 求。它支持fork/join、循环执行,并行执行任务的功能。 可扩展:Pipeline插件支持其DSL的自定义扩 展 ,以及与其他插件集成的多个选项。

  1. 如何创建 Jenkins Pipeline呢?

Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法
Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一 个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法)。

安装Pipeline插件 Manage Jenkins->Manage Plugins->可选插件
安装插件后,创建项目的时候多了“流水线”类型

1.拉取代码

配置git仓库,点击流水线语法

点击生成流水线脚本

2.构建编译

pipeline {
 agent any

 stages {
  stage('拉取代码') {
   steps {
   checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]])
   }
  }
  stage('编译构建') {
   steps {
    sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
   }
  }
   stage('构建完成') {
   steps {
    echo '构建完成'
   }
  }
  stage('远程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
   }
  }
 }
 post {
   always {
    emailext(
    subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
    body: '${FILE,path="email.html"}',
    to: '1692312138@qq.com'
    )
   }
 }
}

3.远程部署

点击生成流水线脚本

 stage('远程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
   }
  }

完整脚本:

pipeline {
 agent any

 stages {
  stage('拉取代码') {
   steps {
   checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]])
   }
  }
  stage('编译构建') {
   steps {
    sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
   }
  }
   stage('构建完成') {
   steps {
    echo '构建完成'
   }
  }
  stage('远程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
   }
  }
 }
 post {
   always {
    emailext(
    subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
    body: '${FILE,path="email.html"}',
    to: '1692312138@qq.com'
    )
   }
 }
}

安装Pipeline Script from SCM插件
刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,建议把Pipeline脚本放
在项目中(一起进行版本控制) 1)在项目根目录建立Jenkinsfile文件,把内容复制到该文件中

2)在项目中引用该文件

点击构建 查看控制台输出

二、部署jar包

1.创建自由风格项目

流程 :
增加构建后操作步骤,然后配置ssh信息,编写脚本,然后发包后执行脚本,停止进程,在启动进程。

2. 安装Publish Over SSH插件

Publish Over SSH插件

然后配置ssh



3.增加构建步骤 编译打包

4.增加构建后操作步骤

配置工程 --》增加构建后操作步骤 选择Sned build artifacts over SSH

Source files 项目构建后的目录

Remove prefix 去前缀

Remote directoty 发布的目录

Exec command 发布完执行的命令

5.编写shell脚本

先通过项目名查找正在运行的项目的端口号,如果存在,则杀死该进程,
然后再次重启项目。

shell脚本:

#!/bin/env bash

#PID=`ps -ef |grep 项目名称 |grep -v grep | awk '{print $2}'`
PID=`ps -ef |grep 'wxthepublic-1.0-SNAPSHOT.jar' |grep -v grep | awk '{print $2}'`
if [ ! "$PID" ]
then # 这里判断TOMCAT进程是否存在
 echo $PID"进程不存在"
else
 echo "进程存在 杀死进程PID$PID"
 kill -9 $PID
fi
nohup java -jar 'wxthepublic-1.0-SNAPSHOT.jar' >/dev/null 2>log &
#根据重启后是否有当前应用判断启动是否成功
pid=$(ps -ef | grep java| grep 'wxthepublic-1.0-SNAPSHOT.jar'|awk -F '[ ]+' '{print $2}')
echo $pid
if [ -z $pid ]
then
 echo "启动失败"
 exit 1
else
 echo 'wxthepublic-1.0-SNAPSHOT.jar' : $pid "启动成功"
fi

6.立即构建

点击立即构建,查看控制台输出

目录下已经出现打过的jar包。

到此这篇关于Jenkins部署war包和部署jar包的详细步骤的文章就介绍到这了,更多相关Jenkins部署war包和jar包内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • CentOS7 上利用 jenkins 实现自动部署

    前端项目打包部署,以前都是手工运行打包命令,打包结束后压缩,然后上传到服务器上解压部署.这种重复性的工作,确实有点让人烦,而且效率也不高. 本文基于 vue 的前端项目. GitHub 的代码仓库,简述在 CentOS7 上利用 jenkins 实现自动部署. 一.安装插件 NodeJS Jenkins -> Manage Jenkins -> Manage Plugins -> Avaliable 搜索 NodeJS,勾选 NodeJS,点击 Install without resta

  • Jenkins远程部署war包过程图解

    主体上看别人的脚本,然后和开发协商,做出符合自己的生产脚本................................ 脚本一: #!/bin/bash DATE=`date +%F-%H-%M` PROJECT='HBKeNong-1.0-SNAPSHOT' PROJECT_TARGET='HBKeNong' ROOTDIR='/usr/local' TOMCAT_HOME='/usr/local/test-tomcat-01' #停止tomcat服务 echo '停止test-tomca

  • 使用Jenkins部署React项目的方法步骤

    背景 公司的前端项目部署方式比较简单,整个过程基本上是手动的: 目标 通过工具实现以下几个任务: 编译.部署自动化: 选择指定版本进行回滚: 区分不同的分支(环境): 技术方案 选用 jenkins 作为部署工具:也便于后续 CI 的接入: 使用 docker 进行编译,确保每次编译的环境的稳定: 步骤 步骤一:搭建 Jenkins 搭建 Jenkins 有很多方案,这里选择使用 docker 搭建. docker-compose.yml 的内容如下: version: '3' services

  • window下使用Jenkins来做自动化部署的教程图解

    今天我们来说一下,如何使用Jenkins+powershell脚本,将我们的.NET CORE的脚本部署到对应的服务器上. 这里我们使用的源码管理工具是TFS.虽然源码管理器比较老旧,但是原理都差不多. 1.安装Jre,因为我们的Jenkins是基于java开发的,所以需要先在服务器上安装java的运行时环境 这个安装过程比较简单,百度下载JRE,然后安装,暂且不表. 下载地址:https://www.java.com/en/download/manual.jsp 2.下载并安装Jenkins,

  • 使用jenkins+maven+git发布jar包过程详解

    1.新建maven项目 2.配置git仓库 3.在远程机器上执行脚本,这一步需要先配置能ssh远程机器 a.安装publish over ssh 插件 b.jenkins----配置----config system,配置远程连接主机账号密码 高级那边配置密码 c.配置Send files or execute commands over SSH after the build runs 4.构建jar包 5.前面Send files or execute commands over SSH a

  • 详解jenkins自动化部署vue

    一.nodejs配置 首先加入nodejs插件 –>–> 在配置里面配置这个插件 –> 这样我们就能在自动构建发布的配置里看到nodejs的编译选项了 二.发布配置 首先新建一个自由风格的项目 然后配置构建保留天数和参数化构建 这里选择在svn上的资源,配置好访问的用户信息 这样我们在构建的时候能看到项目的不同版本 接下来选择构建的数据源位置 echo $PATH node -v npm -v npm install chromedriver --chromedriver_cdnurl=

  • Linux中jar包启动和jar包后台运行的实现方式

    Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行

  • Maven如何构建可执行的jar包(包含依赖jar包)

    目标: 将依赖的第三方jar包打进去 方法: maven-assembly-plugin 环境: IDEA 2016.3 JDK 1.8 遇到的问题: 此处耗时2天时间,遇到过的坑: 1.修改完pom.xml后,不生效. --改pom.xml后,代码不生效,是因为对IDEA工具不熟,在修改完xml后,需要点工具右下角的import changes或者直接点auto-import就可以一劳永逸了. 2.生成jar后,idea可以执行,但是java -jar无法执行,报错Exception in t

  • javaWeb项目部署到阿里云服务Linux系统的详细步骤

    目录 项目部署到阿里云Linux系统 1.在虚拟机中创建一个指定安装软件的目录 2.安装项目部署的java1.8环境 2.1.上传文件 2.2.解压文件 1.运行前置目录查看是否有安装的jdk 2.运行命令进行解压并删除原来文件 2.3.配置JDK环境变量 3.RPM安装MySQL8.0.29数据库 3.1.官网下载地址 3.2.上传到Linux系统目录 1.解压文件 2.查看解压后的文件 3.3.执行安装操作 1.进行安装install 2.删除mariadb 3.执行安装rpm安装包(有先后

  • 使用maven war包打包去除jar包瘦身

    1.pom文件配置 1.1 添加maven-dependency-plugin插件用于将引用的jar包拷贝到指定的路径 便于后续tomcat启动指定依赖包路径 <!--拷贝依赖到jar外面的lib目录--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <execution

  • Java之maven打完jar包之后将jar包放到指定位置汇总

    目录 前言 方式一 方式二 方式三 方式四 方式五 总结 前言 maven打完jar包之后,默认放置位置是target目录 有时候项目需要,如何将jar包放置到指定的目录呢? 方式一 通过maven-jar-plugin指定outputDirectory输出路径 可以排除某些配置文件,没有文件夹的话会自动创建! <plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>m

  • springboot打包实现项目JAR包和依赖JAR包分离

    目录 写在前面的 默认的maven配置 解决方案 assembly配置 maven中的配置 最终打包后的效果 写在前面的 当我们使用spring boot写项目时,一般都会遇到一个问题,那就是spring boot打包时,会将自己写的代码和项目的所有依赖文件打成一个可执行的jar包. 通常我们的项目都是运行在服务器上的,当项目更新时,每次都要向服务器上传这个包.如果项目的依赖包很多,那么这个文件就会非常大. 大文件上传不仅浪费带宽,有时候网络不稳定,传输一半断网,又要重新上传,非常麻烦. 默认的

  • 通过jenkins发布java项目到目标主机上的详细步骤

    发布java项目的步骤: 拉取代码并打包 mvn clean package 备份目标服务器上已有的要发布项目 将包传到目标服务器的webapss目录中 需做免密登录 重启目标服务器的tomcat服务 修改项目的配置 重启目标服务器的tomcat服务 项目要求: 两台主机上分别安装jenkins,tomcat jenkins主机上操作 #两台主机做免密登录 [root@localhost ~]# ssh-keygen -t rsa Generating public/private rsa ke

  • 简单了解springboot的jar包部署步骤

    由于springboot常用war包部署,改为cloud开发模式多端口情况下,部署反而不习惯 毕竟,war包要不要项目名访问都必须放在tomcat的root目录下 而此目录限制只能放置一个项目,并且登录端口限制为tomcat的接口了 因此,jar包部署就成了必然的方式了 1.添加pom设置 静态文件需要访问,所以静态文件webapp下的文件需要重新指定位置,具体配置如下 <resource> <directory>src/main/webapp</directory>

  • Spring Boot Jar 包部署脚本的实例讲解

    当使用 Spring Boot 进行开发时,它可以将项目打包成 Jar 包进行部署,但是我们的部署环境一般都是 Linux,每次手写脚本很烦人,所以我提供了一个简单的脚本,用于部署 Spring Boot 生成的 Jar 包. 脚本内容很简单,就是通过端口 kill 掉旧的进程,并将新的 Jar 包部署上去. #!/bin/bash port=8090 jar_name="上传到服务器上的 Jar 包名称" deployed_jar="服务器上部署的 Jar 包名称"

  • docker部署可执行jar包的思路与完整步骤

    目录 前言 一.思路 二.准备工作 1.创建存放docker配置文件.jar包的文件夹 2.创建bash文件 3.创建容器配置文件 二.构建镜像 三.创建容器并运行 四.删除多余或失败的容器.镜像 1.观察已经有哪些容器 2.删除指定容器 3.观察已经有哪些镜像 4.删除指定镜像 五.docker世界中的一些术语 六.补充 总结 前言 我们构建的是运行bash文件命令的镜像,而不是构建jar包的镜像.好处就是,jar包有更新,只需替换jar包或者bash文件,而无须重新构建镜像. 通常,用doc

随机推荐