文章目录

  • 1、项目说明
  • 2、tomcat 配置
    • (1)tomcat-users.xml 配置用户
    • (2)context.xml 去掉访问限制
    • (3)解决 war包过大无法上传
    • (4)访问host-manager报403错误
  • 3、Jenkins 插件安装
    • 1)主要插件说明
    • 2)Maven Integration plugin
    • 3)Git plugin
    • 4)Publish Over SSH:
    • 5)Deploy to container:
  • 4、Jenkins 配置
    • 1)Maven 配置
    • 2)JDK
    • 3)Git
    • 4)Maven
  • 5、Jenkins 创建任务
    • 1)任务名称
    • 2)描述
    • 3)源码管理(Git)
    • 4)构建触发器(可选)
      • (1)`Build periodically` (定时构建)
      • (2)`Poll SCM` (轮询scm)
      • (3)`Build after other projects are built` (其他工程构建后触发)
      • (4)`GitHub hook trigger for GITScm polling` (github 上代码有变动时构建)
    • 5)构建
    • 6)构建后操作
  • 6、测试
    • 执行任务
    • 查看日志

1、项目说明

项目是 SpringBoot ,源代码从 git 获取,使用 maven 编译和 打包为War包,Jenkins 自动部署到远程的 tomcat。

2、tomcat 配置

(1)tomcat-users.xml 配置用户

apache-tomcat-8.5.56\conf\tomcat-users.xml

<role rolename="manager-gui"/>
<user username="jenkins" password="jenkins123" roles="manager-gui"/>

完整配置如下:

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="jenkins" password="jenkins123"roles="admin-gui,manager-gui,manager-script,manager-jmx,manager-status"/>

用户名是 jenkins,密码是 jenkins123 ,按需自定义。

检查tomcat 配置情况,登录 http://127.0.0.1:8080 ,如下图所示。

输入用户名和密码

进入应用管理页面,如上所示。

(2)context.xml 去掉访问限制

apache-tomcat-8.5.56\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" />-->

或者,将 allow的值修改为

allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"
修改为
allow="^.*$"

(3)解决 war包过大无法上传

apache-tomcat-8.5.56/webapps/manager/WEB-INF/web.xml

<multipart-config><!-- 500MB max --><max-file-size>524288000</max-file-size><max-request-size>524288000</max-request-size><file-size-threshold>0</file-size-threshold>
</multipart-config>

(4)访问host-manager报403错误

apache-tomcat-8.5.56/webapps/host-manager/META-INF/context.xml

allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"
修改为
allow="^.*$"

3、Jenkins 插件安装

1)主要插件说明

项目是 SpringBoot ,源代码从 git 获取,使用 maven 编译和 打包为War包,自动部署到远程的 tomcat,所涉及到的 Jenkins插件如下。

插件 名称
Maven Integration plugin Maven集成插件
Git plugin Git插件
Publish Over SSH SSH推送插件
Deploy to container 应用服务器推送插件

2)Maven Integration plugin

3)Git plugin

4)Publish Over SSH:

5)Deploy to container:

4、Jenkins 配置

1)Maven 配置

win10 上 Maven 全局配置。

C:\Users\admin\.m2\settings.xml

将 Maven 的 settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:/dev_tools/maven_repo/repository/</localRepository><mirrors><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url></mirror><mirror><id>mvnrepository</id><mirrorOf>mvnrepository</mirrorOf><url>http://mvnrepository.com/</url></mirror><mirror><id>aliyunMaven</id><mirrorOf>central</mirrorOf><name>aliyunMaven</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public</url></mirror><mirror><id>aliyunmaven-spring</id><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/spring/</url></mirror><mirror><id>tencentyun</id><mirrorOf>*</mirrorOf><name>tencentyun</name><url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url></mirror><mirror><id>clojars.org</id><mirrorOf>*</mirrorOf><url>http://clojars.org/repo</url></mirror></mirrors><profiles><profile><id>development</id><activation><jdk>1.8</jdk><activeByDefault>true</activeByDefault></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile></profiles></settings>

2)JDK

3)Git

4)Maven

5、Jenkins 创建任务

1)任务名称

2)描述

3)源码管理(Git)

(1)Repository URL(Git的仓库地址)

http://127.0.0.1:8550/devall/lost_customer_repair.git

(2)Credentials(凭证)

首先要凭证,凭证的种类很多,我选择是用户名和密码。

(3)填写完成后存在,源码管理的配置如下图所示。

4)构建触发器(可选)

此项是可选项。

构建触发器是指在满足某些情况下,触发某个条能,能够自动进行项目构建。

  • Build after other projects are built (其他工程构建后触发)
  • Build periodically (定时构建)
  • GitHub hook trigger for GITScm polling (github 上代码有变动时构建)
  • Poll SCM (轮询scm)

Jenkins 任务配置完成后,通过两种方式执行,一种是在任务列表中手动执行,另一种就是在此处配置触发器(或定时器),满足条件后自动执行。

(1)Build periodically (定时构建)

Build periodically 类似于Spring的 cron表达式、 quartz 定时框架 。

Build periodically 配置如下:* * * * *
(五颗星,中间用空格隔开)
定时字符串从左往右依次是: 分 时 日 月 周 (有点想cron表达式)第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日1.每30分钟构建一次:
H/30 * * * *2.每2个小时构建一次
H H/2 * * *3.每天早上8点构建一次
0 8 * * *4.每天的8点,12点,22点,一天构建3次
0 8,12,22 * * *(多个时间点,中间用逗号隔开)5.问题来了:每个月的1-7号一天构建一次咋写呢?
请在屏幕下方写出你的答案,写对有奖励!

(2)Poll SCM (轮询scm)

轮询scm,是指定时扫描本地代码仓库的代码是否发生变更,如果代码有变化那么就会触发构建行为

比如,每隔30分钟检查一次源码变化,(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

注意:这个触发器,Jenkins会定时扫描本地整个项目的代码,增大系统的开销,不建议使用

(3)Build after other projects are built (其他工程构建后触发)

有时候我们构建需要在其他项目构建完毕之后才能去构建,那么就可以采用这种方式。

举个案例场景,比如我下面Job1是web项目打包并发布的构建任务,我想每次打完包发布后,然后触发自动化测试Job2的构建。

这里可以输入多个依赖的jobs,多个job中间用逗号隔开。启动第一个Job完成后,就能接着启动第二个Job。

注:Build periodicallyPoll SCM 两者是可以结合起来使用的。

(4)GitHub hook trigger for GITScm polling (github 上代码有变动时构建)

管理 github 上代码有变动时构建。

最后这2个一般用的也少,了解下就行。

5)构建

本项目采用 Maven进行项目管理,故此处选择 Invoke top-level Maven targets

Maven版本:

选择之前已经配置的 maven3.5.4

目标的配置如下:

clean install

Maven完整配置如下图所示:

6)构建后操作

在上一步中,使用:Maven完整的项目的编译和打包,接下来就是将war包部署到tomcat中, 故选择 Deploy war/ear to a container

Jenkins 凭据提供者(添加用户名和密码)

在tomcat配置中,创建的管理员用的用户名和密码如下
用户名是 jenkins
密码是 jenkins123

Tomcat URL:

http://localhost:8080/manager/text

构建后操作的完整配置如下:

6、测试

执行任务

点击Build Now 或者 右侧的三角按钮。

查看日志

控制台输出 中查看日志,如下图。

jenkins git maven tomat 项目拉取编译自动部署(操作详细)相关推荐

  1. jenkins+git+maven搭建项目自动化持续集成

    2019独角兽企业重金招聘Python工程师标准>>> 1.概要说明 为了开发人员和测试人员的解耦,让开发和测试流程更加便捷,所以采用jenkins+git+maven这套可持续性集 ...

  2. Git 切换分支,拉取分支代码指令操作

    git命令切换分支_ZHL's Blog-CSDN博客_git切换分支  git命令切换分支 https://www.jianshu.com/p/856ce249ed78 Git如何拉取指定远程分支 ...

  3. 从maven私服(nexus)拉取jar文件,解析项目pom依赖信息

    一.前言 关于pom解析的方式,常见的我认为有两种: 一种是利用dom tree的结构特性,利用dom4j提供的xml解析工具将pom文件读取为dom tree结构,再层层解析出内容. 第二种方式更为 ...

  4. 利用git从gitblit上拉取项目到本地

    利用git从gitblit上拉取项目到本地 一.准备工作 二.将gitblit上项目拉到本地 一.准备工作 下载安装git,这里不做过多的赘述 可以参考https://blog.csdn.net/ju ...

  5. Git使用命令行拉取项目、提交代码

    一.拉取项目 1.打开GitHub,选择项目,复制项目地址 2.在电脑上新建一个项目文件夹,在文件夹里点击右键-->Git Bash Here,打开Git命令行 3.输入git clone + ...

  6. jenkins 安装及配置部署操作 (jenkins+svn+tomcat and jenkins+git+maven+tomcat)

    jenkins 安装及配置部署操作 jenkins+svn+tomcat and jenkins+git+maven+tomcat jenkins rpm软件包下载地址: https://pkg.je ...

  7. Jenkins + Git + Maven + tomcat集成环境搭建

    折腾了好几天,终于把Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现"自动构建.部署"web应用. 1.安装环境 操作系统:Centos ...

  8. 远程GitHub中的项目拉取到本地

    需求:远程GitHub中的项目拉取到本地: 有2种方式: 第1种:直接下载到本地: 第2种(建议使用): 通过git工具,进行远程拉取代码,前提已安装了git 项目代码地址: git@github.c ...

  9. 微信开发者小程序项目拉取与推送

    首先有微信开发者工具 有微信代码管理的账号 如果是云开发确认管理员已添加过云开发权限 目录 一.项目拉取 二.项目推送 一.项目拉取 1.点击版本管理,没有 git仓库创建一个 2.去项目中复制url ...

最新文章

  1. [OpenJudge] 百练2754 八皇后
  2. tomcat苹果版安装步骤_mac系统安装apache tomcat配置方法图文详解
  3. 集群管理工具KafkaAdminClient——改造
  4. java数据源是什么_《java数据源—连接池》
  5. React开发(255):react项目理解 ant design 注意报错提示
  6. dom4j的读写xml文件,读写xml字符串
  7. mysql操作语句(简单笔记)
  8. php下标排序,php二维数组指定下标排序
  9. 阿里云张建锋:数字技术要服务好实体经济
  10. 产品经理学习——Axure常用快捷键
  11. 层次分析法步骤及源代码
  12. 首次使用计算机鼠标键盘不能用,电脑鼠标键盘都不能用如何解决 开机后鼠标键盘不能用怎么办...
  13. linaro 网站资源
  14. 什么是promise?
  15. 什么是智能制造成能力成熟度模型?
  16. 是选择决定了你的一生,而不是努力
  17. python+selenium环境配置及浏览器调用
  18. 中介模式(python实现2)
  19. CodeForces - 1005A . Tanya and Stairways
  20. 【ROS2】【机器人导航navigation2】参数调整分析

热门文章

  1. java前端框架有哪些( 目前java主流开发框架是哪个)
  2. 软件工程选择与判断题
  3. gInk:一款好用的屏幕标注写画软件
  4. R语言绘图-1-火山图
  5. JDK8下载及安装教程之windows版、linux版
  6. ASCII(美国信息交换标准编码)表
  7. matlab 计算物理,计算物理的MATLAB解法与可视化
  8. 基于Simulink的带通BPSK信号调制解调实验报告(含代码和slx文件)
  9. CV全新范式 | LSTM在CV领域杀出一条血路,完美超越Swin与ConvNeXt等前沿算法
  10. 基于Flask的优雅日志记录