Jenkins工作流程

程序员提交代码到Git/SVN仓库,触发钩子程序向 JenKins 进行通知,Jenkins 调用Git/SVN插件获取源码,调用Maven打包为war包,调用Deploy to web container插件部署到Tomcat服务器。

独立还是Servlet

Jenkins可以使用自己的内置Web服务器(Jetty)在自己的进程中独立运行。它也可以作为现有框架中的一个servlet运行,如Tomcat或Glassfish应用程序服务器。本节专门针对独立的安装和执行。

Windows安装

下载 jenkins.war

其它方式百度。

在下载目录中打开终端并运行 java -jar jenkins.war --httpPort=8080

浏览http://localhost:8080并按照说明完成安装。

登录

默认用户名admin,密码位于.jenkins/secrets下的 initialAdminPassword文件

全局安全配置

  1. 允许用户注册
  2. 任何用户都可以做任何事

全局工具配置

  1. Maven的设置配置成本地路径(强烈建议把setting文件拷贝到workspace文件夹下,输入../settings.xml)
  2. 添加JDK,取消自动安装

  1. 配置MAVEN_HOME

插件安装

Ctrl + F 搜索 Deploy to container ,勾选安装。

安装成功

安装GitLab插件

上传项目代码到GitLab

参考链接

https://jingyan.baidu.com/article/9c69d48fe68cce13c9024e9c.html

创建任务

Git源配置

注意该URL目录下有pom.xml文件,也就是位于根目录。

点击Add之后,注意下方填入GitLab用户名和密码

一定别忘了选择自己生成的证书!

构建触发器

远程触发器的作用,当你访问这个URL网址时,会自动构建项目。

例如;

http://127.0.0.1:8080/job/Demo/build?token=123456789

构建

这里你使用 Execute shell 形式 即 shell 脚本语言进行构建操作。

不过我们是Java项目,使用的是Mavne构建,所以选择最后的调用顶层 Maven 目标。

立即构建

点开工作区,出现target文件夹

Jenkins 使用天气图标代表执行结果

构建后操作

发布到Tomcat

必须要有Deploy to container 插件

点击之后,设置构建后的war包相对路径,context path 是访问的域名xxx.cn/demo

然后是 Tomcat manager 的用户名和密码(配置参考:https://www.cnblogs.com/yueshutong/p/10184022.html

最后是Tomcat的路径。

保存,回来再次构建。回到Tomcat所在的服务器,访问 http://127.0.0.1:8888/demo/ 即可。

触发钩子程序

我们试着修改index.jsp,然后提交到Gitlab。

还记得前面配置的触发器吗?

访问配置的触发网址 http://127.0.0.1:8080/job/Demo/build?token=123456789

当我访问了触发器URL后,Jenkins 工作区就开始构建。

然后,再次访问 http://127.0.0.1:8888/demo/ 网址,发现已经成功更新。

我参考的文章

https://blog.csdn.net/m1126m/article/details/78556359

JenKins自动化构建部署流程参考的更多相关文章

  1. windows 安装 jenkins 自动化构建部署至linux服务器上

    一.环境准备 1.git安装环境 参考链接 https://www.cnblogs.com/yuarvin/p/12500038.html 2.maven安装环境,包括jdk环境安装 参考链接 htt ...

  2. dokcer自动化构建部署java web 基于jenkins+maven+nuxus容器

    # dokcer自动化构建部署java web 基于jenkins+maven+nuxus容器 #环境centos 7.4 docker 18.03.0-ce # nuxus,创建maven本地源(可 ...

  3. Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成

    <SVN与TortoiseSVN实战系列>已写完,今天新开一个<Jenkins自动化构建系列>,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关 ...

  4. 使用Docker+Jenkins自动构建部署

    环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...

  5. Jenkins自动化构建python nose测试

    [本文出自天外归云的博客园] 简介 通过Jenkins自动化构建python nose测试分两步: 1. 创建节点(节点就是执行自动化测试的机器): 2. 创建任务并绑定节点(用指定的机器来跑我们创建 ...

  6. Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建

    Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...

  7. Jenkins自动化构建配置

    写在前头 我每次修改代码一点东西,都要进行一个重新发布.重新发布的流程大概如下: 将最新代码同步上传到git上面 Maven打包 mvn clean install 将最新的jar包上传到服务器上面, ...

  8. 使用jenkins自动化构建android和ios应用

    背景 随着业务需求的演进,工程的复杂度会逐渐增加,自动化的践行日益强烈.事实上,工程的自动化一直是我们努力的目标,能有效提高我们的生产效率,最大化减少人为出错的概率,实现一些复杂的业务需求应变.场景如 ...

  9. 用Docker运行Jenkins自动化构建.NET Core项目

    目标 当代码提交到GitHub后,自动生成构建项目并部署到服务器.接下来介绍一下如何在容器中运行Jenkins,并自动化构建GitHub上的项目,使用自动化构建来解放你的双手. 前置条件 一台已经安装 ...

随机推荐

  1. DES数据解密

    /// <summary> /// DES数据解密 /// </summary> /// <param name="targetValue">& ...

  2. (网页)css和js的版本号问题

    HTML页面自动清理js.css文件的缓存,之前用的是?v=11每次都要找寻到网页进行更改,非常的麻烦. <script type="text/javascript"> ...

  3. 你的leader还在考核你的千行代码Bug率吗?

    管理学大师德鲁克说:你如果你无法度量它,就无法管理它.要想做有效的管理,就很难绕开度量的问题. 软件开发的过程或者技术团队的管理也存在着如何去合理的度量效率的问题.而度量是把双刃剑,度量具有极强的引导 ...

  4. C#方法重载(overload)方法重写(override)隐藏(new)

    一.重载:同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同.这样才能通过传递不同的参数来决定到底调用哪一个. 值得注意的是,方法重载只有通过参数不同来判断调用哪个方法, ...

  5. layui中radio的动态加载(进入修改页面时,设置radio)

    动态设置   radio  的值让它处于选中状态 效果图 : 前端代码: <div class="layui-form-item"> <label class=& ...

  6. 028实现strStr()

    #pragma once #include "000库函数.h" /*********************自解**************/ //使用算法中的find 12ms ...

  7. 【字符串】ZSC-字符串编辑

    Description 从键盘输入一个字符串(长度<=40个字符),对字符串进行编辑.例如,输入"This is a book." 现对该字符串进行编辑,编辑功能有:(1) ...

  8. 【工具大道】ssh登录Linux服务器,并显示图形化界面

    本文地址 点击关注微信公众号 "程序员的文娱情怀" 分享提纲: 1. 概述 2. mac版实现ssh登录,显示图形化 1. 概述 平时ssh登录到Linux服务器都是在命令行下进行 ...

  9. 《Java大学教程》—第21章 高级案例研究

    21.3    需求:P510用例模型(use case model):用例图(use case diagram).用例(use case).行为说明(behaviour specification) ...

  10. props default 数组/对象的默认值应当由一个工厂函数返回

    export default {props: { slides:{ type:Array, default:[] } },这是我的代码 报错是Invalid default value for pro ...