linux-centos下持续集成工具jenkins部署使用教程
centos下准备工作:
1.安装jdk环境
2.安装maven环境(用于构建项目)
3.git客户端(用于拉取源码)
此外码云还要准备一份java源码(springboot项目)
一、安装jenkins(演示版本为2.141):
官方下载jenkins的war包程序,上传至centos系统,如下:

然后执行命令,设置端口9000,运行jenkins
nohup java -jar jenkins.war --httpPort=9000 >temp.txt &
temp.txt为日志文件。
启动完成后,浏览器访问 http://ip:9000/,首次访问需要输入我们在日志中拿到的密码,如下图:

下一步,直接选择安装默认插件:

完成之后到首页如下:

进入系统管理 -> 全局工具配置:
1.maven settings.xml 配置

2.jdk配置:

3.Git配置

4.maven配置

保存即可
点击首页的新建任务,如下:

只要实现提交代码后手动构建部署项目,所以只需要设置如下两项即可:


点击add输入码云的账号密码:


确认自己项目war或jar名称已经jenkins构建后的目录(~/.jenkins/workspace/xxx/target/) ~ 指的是当前用户目录
我的项目源码打包后名称为 file-manage-0.0.1-SNAPSHOT.war 构建后目录为:~/.jenkins/workspace/file-manage/target/
准备目录:

所涉及的脚本命令如下:
#!/bin/bash -ile
cd /deploy_cmp_script
echo "Execute shell Start"
sh stop.sh
sh replace.sh
echo "Execute shell Finish"
chmod /deploy_cmp_script/startup.sh
BUILD_ID=dontKillMe
sh /deploy_cmp_script/startup.sh

stop.sh:
#!/bin/bash -ile
cd /deploy_cmp_script/
echo "Stopping SpringBoot Application for CMP"
ls
pid=`ps -ef | grep file-manage-0.0.-SNAPSHOT.war | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill - $pid
fi
replace.sh:
#!/bin/bash -ile
jar_name=file-manage-0.0.-SNAPSHOT.war
file_path=~/.jenkins/workspace/file-manage/target/
file="/deploy_cmp/file-manage-0.0.1-SNAPSHOT.war"
if [ -f "$file" ]
then
mv /deploy_cmp/file-manage-0.0.-SNAPSHOT.war /deploy_cmp_backup/file-manage-0.0.-SNAPSHOT.war.`date +%Y%m%d%H%M%S`
fi
cp ~/.jenkins/workspace/file-manage/target/file-manage-0.0.-SNAPSHOT.war /deploy_cmp
startup.sh:
#!/bin/bash -ile
echo "授予当前用户权限"
chmod /deploy_cmp/file-manage-0.0.-SNAPSHOT.war
echo "执行....."
cd /deploy_cmp
nohup java -jar file-manage-0.0.-SNAPSHOT.war >temp.txt &
echo "**********************cmp on jenkins started*************************"
然后jenkins页面点击保存,立即构建,点击:

查看构建日志
linux-centos下持续集成工具jenkins部署使用教程的更多相关文章
- Android持续集成之Jenkins 部署
Android持续集成之Jenkins 部署 [TOC] 0x00安装 准备工作如下: Tomcat8.5下载地址 Jenkins下载链接 1 将下载的jenkins.war包放至tomcat下的we ...
- 持续集成工具Jenkins安装、部署、使用
本文介绍jenkins,利用其做项目发布与持续集成交付工具. 一.Jenkins是什么? Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布 ...
- 持续集成工具jenkins的使用
jenkins类似于Hadson,是一款持续集成工具.使用jenkins完成自动化部署的表现为:当开发人员向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序.搭建 ...
- 轻松搭建持续集成工具jenkins
1.Jenkins介绍1)什么是持续集成随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软 ...
- 持续集成工具——Jenkins
一.jenkins简介 1.持续集成工具 2.基于JAVA环境 二.环境搭建 1.安装JDK 2.安装配置git 3.安装配置tomcat Tomcat是针对Java的一个开源中间件服务器(容器),基 ...
- 持续集成工具Jenkins学习总结
概述 持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译.发布.自动化测试)来验证,从而尽早的发现集成错误.持续集成最大的优 ...
- 持续集成工具-Jenkins 使用介绍
Jenkins 是一个可扩展的持续集成引擎,可以为我们提供代码自动编译.打包和发布工作,减少部署成本. 一.安装与启动 Jenkins 提供了多种便捷的安装方式,比较推荐使用执行 war 包的方式. ...
- 【Gerrit】持续集成工具Jenkins的安装配置与使用过程中遇到的问题整理
1.下载war包 https://jenkins.io/download/ 2.安装 java -jar jenkins.war Error: Feb 21, 2019 2:17:25 AM wins ...
- Linux环境:持续集成环境部署系列
之前的博客介绍了Linux环境下持续集成环境部署的一些内容,这篇博客将其整理一下,算做一个index,方便自己和大家查阅... 1.linux下安装JDK Jenkins是一个java开源的持续集成工 ...
随机推荐
- BZOJ.1901.Dynamic Rankings(线段树套平衡树 Splay)
题目链接or Here 题意:n个数,有两个操作:1.修改某个数为v:2.询问一段区间第k小的数 如果没有修改,则可以用线段树,每个节点P[a,b]存储大小为b-a+1的数组,代表其中的数 同时,这个 ...
- 使用C3P0报错:java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
错误提示: java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector at JDBC.ConnectionPool.testC3P0( ...
- ${pageContext.request.contextPath}无法解析
摘要 突然出现无法解析${pageContext.request.contextPath}的问题,在点击<a href="${pageContext.request.contextPa ...
- springboot2.X 集成redis+消息发布订阅
需求场景:分布式项目中,每个子项目有各自的 user 数据库, 在综合管理系统中存放这所有用户信息, 为了保持综合管理系统用户的完整性, 子系统添加用户后将用户信息以json格式保存至redis,然后 ...
- SharePoint Online 自定义Modern UI表单
前言 用过SharePoint Online 版本的朋友们,应该很熟悉SharePoint为我们带来的Modern UI,而这个页面的订制,也跟原来的表单定制方式不同了,而且更加简单了. 而且,试了一 ...
- LINUX 修改SSH默认22端口的方法
首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,修改为如下: Port 22 Port 50000 然后保存退出 执行/etc/ ...
- 使用别名访问MSSQL Express
当MSSQL Express安装成功后,默认只能用 .\sqlexpress 或者 (local)\sqlexpress 有时候我们希望使用(local) 就可以访问,此时就可以利用别名 1.MSSQ ...
- Go语言之高级篇beego框架之controller调用model
一.controller调用model 开发规范,就该把对数据库的操作写在model文件夹中. 示例: views/main.go package main import ( _ "web/ ...
- oracle获取今年在内的前几年、后几年
前几年 select to_char(sysdate, 'yyyy') - level + 1 years from dual connect by level <= num num:即想获取几 ...
- Android四大组件应用系列——使用ContentProvider实现跨进程通讯
一.问题描述 如何在Android中实现不同应用之间的通讯(既跨进程进行调用)?Android提供了多种实现方式,使我们可以实现跨进程访问Activity.通过ContentProvider跨进程访问 ...