使用Jenkins2.6 集成Maven与Git插件做持续集成,同时编写Shell脚本备份与发布(需要稍微知道点Linux/毕竟基于Centos PS:本人Linux也是菜鸡)

- 下载Jenkins2.6

官方网站:https://jenkins.io/

下载地址:https://jenkins.io/download/

下载

1
2
3
4
5
6
7
8
# 指定端口为 18080 且 后台运行 jenkins 并且日志输出到 Jenkins.log中去
[root@localhost jenkins]# nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war --httpPort=18080 > jenkins.log & # 我禁用了 Centos7 自带的防火墙,安装的是 iptables
[root@localhost jenkins]# service iptables stop # 查看启动日志
[root@localhost jenkins]# tail -n 30 jenkins.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
七月 21, 2017 2:10:21 下午 jenkins.install.SetupWizard init
信息: *************************************************************
*************************************************************
************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation: 9fd9b9c8f50247b79b30674c83d6f560 #这一串就是我们的首次访问密码 This may also be found at: /root/.jenkins/secrets/initialAdminPassword *************************************************************
*************************************************************
************************************************************* 七月 21, 2017 2:11:02 下午 hudson.model.UpdateSite updateData
信息: Obtained the latest update center data file for UpdateSource default
七月 21, 2017 2:11:03 下午 hudson.model.UpdateSite updateData
信息: Obtained the latest update center data file for UpdateSource default
七月 21, 2017 2:11:03 下午 hudson.WebAppMain$3 run
信息: Jenkins is fully up and running
七月 21, 2017 2:11:04 下午 hudson.model.DownloadService$Downloadable load
信息: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
七月 21, 2017 2:11:20 下午 hudson.model.DownloadService$Downloadable load
信息: Obtained the updated data file for hudson.tools.JDKInstaller
七月 21, 2017 2:11:20 下午 hudson.model.AsyncPeriodicWork$1 run
信息: Finished Download metadata. 60,360 ms

我的主机IP:192.168.18.137

那么应该访问:http://192.168.18.137:18080

- 安全认证

安全认证

- 插件安装

插件安装

- 耐心等待

网络好的童鞋会灰常快,可惜我的网速贼渣,在这一步等了差不多有二十来分钟

耐心等待

- 创建用户

创建用户

- 安装完成

到这一步说明我们Jenkins已经安装完成并且自带了部分插件(GIT,Email..),接下来 我们来配置JDK与Maven,以及Maven插件

安装完成

- Maven插件安装

系统管理 -> 管理插件 -> 可选插件 -> 安装完毕 -> 重启Jenkins -> 刷新浏览器

下图为过滤插件且安装

Maven插件安装

- 全局配置(JDK/Maven)

系统管理 -> Global Tool Configuration -> 配置JDK -> 配置Maven -> 点击Save

全局配置

- 项目配置

首页 -> 开始创建一个新项目 -> 构建一个自由风格的软件项目/构建一个Maven项目(如果没安装Maven插件那就构建自由风格的,顶多就是通过构建完成后脚本多一句 mvn package) -> 构建一个Maven项目

创建项目

- 配置GIT账号

配置GIT

- 配置指令与Shell

配置指令与Shell

- Shell 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@localhost battcn-workspace]# touch start-battcn.sh

[root@localhost battcn-workspace]# chmod 755 start-battcn.sh

#!/bin/sh
echo "====================================开始===================================="
#杀掉8080端口的进程
kill -9 `lsof -t -i:8080`
#进入到存放jar目录
cd /usr/local/battcn-workspace
#备份jar包(也可以先备份在杀进程)
cp -p /usr/local/battcn-workspace/battcn-swagger-1.0.0.jar ./backups/battcn-swagger-1.0.0-`date +%Y-%m-%d-%H:%M:%S`.jar
#删除当前目录下的JAR
rm -rf battcn-swagger-1.0.0.jar
#从Jenkins缓存目录拷贝
cp /root/.jenkins/workspace/battcn-swagger/target/battcn-swagger-1.0.0.jar .
#查看备份是否成功
ls -al /usr/local/battcn-workspace/backups/battcn-swagger-1.0.0-*.jar
#后台启动,且指定了开发环境和内存
nohup java -jar /usr/local/battcn-workspace/battcn-swagger-1.0.0.jar -Xms512m -Xmx1024m --spring.profiles.active=dev > /dev/null &
echo "====================================结束===================================="

- 开始构建

开始构建

- 查看日志

开始构建

只要Jenkins告诉我们构建成功 15:44:03 Finished: SUCCESS 就OK

查看日志

ps aux | grep battcn-swagger 一下 代表我们项目已经成功构建了,且自动备份(第一次是不会备份,因为我们没有原始包,但是以后每次发布都会将)

1
2
3
[root@localhost battcn-workspace]# ps aux | grep battcn-swagger
root 16301 9.2 21.2 4060732 397036 pts/1 Sl 15:43 0:28 java -jar /usr/local/battcn-workspace/battcn-swagger-1.0.0.jar -Xms512m -Xmx1024m --spring.profiles.active=dev
root 16395 0.0 0.0 114712 980 pts/1 S+ 15:49 0:00 grep --color=auto battcn-swagger
1
2
3
[root@localhost battcn-workspace]# ll backups/
总用量 22052
-rw-r--r--. 1 root root 22580820 7月 21 15:43 battcn-swagger-1.0.0-2017-07-21-15:43:52.jar

- 结束

- 验证

访问:http://192.168.18.137:8080/swagger-ui.html

验证

Centos 下 Jenkins2.6 + Git + Maven Shell一件部署与备份的更多相关文章

  1. Centos下安装JDK、Maven和Git

    原文地址:https://github.com/eacdy/spring-cloud-book/blob/master/3%20%E4%BD%BF%E7%94%A8Docker%E6%9E%84%E5 ...

  2. [CentOS]使用Jenkins配置Git+Maven的自动化构建

    背景 最近安装Jenkins,参照网上的各种资料进行尝试,折腾了好久,但是查找了这么多资料,相似度在90%以上!!!,相同的安装过程,测试了几台机器,未曾成功,不得不感慨自己能力有限,最终慢慢摸索,形 ...

  3. CentOS下安装与配置Maven

    安装Maven 当前系统 [root@141 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 下载 http://ma ...

  4. centos下 yum快速安装maven

    wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos ...

  5. centos下的redis一键安装shell脚本

    #!/bin/bash yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget #安装依赖库 ...

  6. Git + Maven + Jenkins 实现分布式部署

    一.安装 和 准备工作 我们选择了用 Tomcat 服务器下 war 包的安装方式.Jenkins 的下载地址:http://mirrors.jenkins-ci.org/,打开链接后,表格有war列 ...

  7. Centos下MooseFS(MFS)分布式存储共享环境部署记录

    分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机/服务器模式.目前 ...

  8. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  9. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

随机推荐

  1. Java实现 LeetCode 367 有效的完全平方数

    367. 有效的完全平方数 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 说明:不要使用任何内置的库函数,如 sqrt. 示例 1: ...

  2. Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨

    算法提高 特殊的质数肋骨 时间限制:1.0s 内存限制:256.0MB 问题描述 农民约翰母牛总是产生最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们.农民约翰确定他卖给买方的是 ...

  3. java实现BellmanFord算法

    1 问题描述 何为BellmanFord算法? BellmanFord算法功能:给定一个加权连通图,选取一个顶点,称为起点,求取起点到其它所有顶点之间的最短距离,其显著特点是可以求取含负权图的单源最短 ...

  4. java实现坐标

    * 已知平面上若干个点的坐标. 需要求出在所有的组合中,4 个点间平均距离的最小值(四舍五入,保留 2 位小数). 比如有 4 个点:a,b,c,d,则平均距离是指:ab, ac, ad, bc, b ...

  5. React 为什么要把事件挂载到 document 上 & 事件机制源码分析

    前言 我们都知道 React 组件绑定事件的本质是代理到 document 上,然而面试被问到,为什么要这么设计,有什么好处吗? 我知道肯定不会是因为虚拟 DOM 的原因,因为 Vue 的事件就能挂载 ...

  6. 数据结构之链表(Linked list)

    说明:如果仔细阅读完全文后,可能感觉有些不统一,这里先说明下原因. 链表尾引用不统一:在介绍单链表时,只有一个链表首部的引用(head) 指向第一个节点.你看到后面关于双链表及循环列表时,除了指向第一 ...

  7. mysql基础-数据库表简单查询-记录(五)

    0x01 MySQL的查询操作 单表查询:简单查询                 多表查询:连续查询                联合查询 选择和投影 投影:挑选要符合的字段     select ...

  8. NetAnalyzer笔记 之 十四 NetAnalyzer 6.0 的使用方法 -- 3.协议分析与统计

    数据分析 完成了数据的抓取,那么接下来就是NetAnalyzer的第二个重点部分了,协议分析作为整个软件的核心之一,在最新的NetAnalyzer中已经得到了巨大的提升.NetAnalyzer中协议分 ...

  9. 源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

    作者:小傅哥 博客:https://bugstack.cn - 汇总系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 一个知识点的学习过程基本分为:运行helloworld ...

  10. 8、react 高阶组件

    1.高阶组件:封装 高阶组件使用得是react得一种模式,增强现有组件得功能 一个高阶组件就是一个函数,这个函数接收得是组件类作为参数得,并且返回得是一个新组件,再返回得新组件中有输入参数组件不具备得 ...