Jenkins 基础入门
原文地址:Jenkins 基础入门
博客地址:http://www.extlight.com
一、前言
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
二、安装工作
测试环境:CentOS 7.4, IP:192.168.10.100
2.1 下载
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins
2.2 启动/停止/重启命令
service jenkins start/stop/restart
chkconfig jenkins on
如果是首次安装 jenkins 启动失败,应该是 jenkins 没有找到 jdk 命令的缘故。我们有两种方式解决:
方式一: yum install java
方式二:解压包的 jdk :
vim /etc/sysconfig/jenkins
修改
JENKINS_JAVA_CMD="/usr/jdk1.8/bin/java"
精确到 java 命令。
启动成功后,打开浏览器访问:http://192.168.10.100:8080 来到 Jenkins 初始化首页,按照提示设置即可,最终会看到如下界面:

如果还出现问题,请查看 jenkins 日志查找原因。
2.3 文件目录
# 配置文件相关
/etc/sysconfig/jenkins
# 工作空间相关
/var/lib/jenkins/
# 日志相关
/var/log/jenkins/jenkins.log
2.4 插件安装
Jenkins 提供了很多插件,我们可以根据自己的需求进行下载,下载方式如下:
主界面-> 插件管理,右上角搜索框,效果图如下:

三、安全授权
主界面 -> 系统管理 -> 全局安全管理
在授权策略中选择 “安全矩阵”,添加用户,输入我们安装 Jenkins 时设置的用户名。

授权:

四、全局工具
主界面 -> 系统管理 -> 全局工具配置。
我们需要配置 JDK、Git 和 Maven。如下图:

注意:要去掉自动安装的勾选
五、实战演练
场景:通过 Jenkins 从 Github 上拉去 Maven 项目到本地进行打包,并自动部署到 Tomcat 中。
测试的 maven 项目涉及到连接 mysql 数据库,在构建之前请设置数据库的数据。具体步骤请浏览 https://github.com/moonlightL/ml-blog
5.1 新建任务
主界面 -> 新建任务,选择自由风格的软件项目

5.2 源码管理
这一步骤作用是获取源码。
选中 Git,设置需要拉取的项目地址。

5.3 构建
这一步骤作用是将源码进行打包和部署。
点击 “增加构建步骤”,选中 “调用顶层 Maven 目标”,设置 maven 执行的命令:clean package -Dmaven.test.skip=true,如下图:

设置好 Maven 命令后,再点击 “增加构建步骤”,选中 “执行 Shell”,输入如下脚本(请根据自己的情况修改):
BUILD_ID=DONTKILLME
TOMCAT_HOME="/usr/tomcat8"
JENKINS_HOME="/var/lib/jenkins"
kill -9 `ps -ef | grep tomcat | awk 'NR==1 {print $2}'`
rm -rf $TOMCAT_HOME"/webapps/ROOT"
rm -rf $TOMCAT_HOME"/webapps/ROOT.war"
cp $JENKINS_HOME"/workspace/ml-blog/target/ml-blog-0.0.1-SNAPSHOT.war" $TOMCAT_HOME"/webapps/ROOT.war"
sh $TOMCAT_HOME"/bin/startup.sh"

保存,最后点击左侧 “立即构建” 即可。
构建完成后,我们打开浏览器访问:http://192.168.10.100:8090(jenkins 使用 8080 端口,将 tomcat 改成 8090),效果图如下:

六、参考资料
Jenkins 基础入门的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- 「译」JUnit 5 系列:基础入门
原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...
- .NET正则表达式基础入门
这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ...
- 从零3D基础入门XNA 4.0(2)——模型和BasicEffect
[题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- Shell编程菜鸟基础入门笔记
Shell编程基础入门 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
- RobotFramework - 基础入门
Robot Framework Wiki HomePage Robot Framework User Guide Robot Framework documentation Robot Framewo ...
随机推荐
- 安装Git【转】
本文转载自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 最早Git是在Linu ...
- Android -- service的开启方式, start开启和绑定开启服务,调用服务的的方法, aidl调用远程服务
1. 概述 bindService() 绑定服务 可以得到服务的代理人对象,间接调用服务里面的方法. 绑定服务: 间接调用服务里面的方法. 如果调用者activity被销毁了, ...
- photoswipe图片滑动插件使用
第一步: 引入jss和css文件 <!-- Core CSS file --> <link rel="stylesheet" href="path/t ...
- 过了所有技术面,却倒在 HR 一个问题上
面试问离职原因,这是我们广大程序员朋友面试时逃不开的问题,如果答得不好,可能就影响了你整个的面试结果. 最近在群里,我也看到大家在讨论这个问题,其中有个朋友的回复很有感触,我分享给大家看一下. 如图, ...
- Java Spring-AOP中的动态代理
2017-11-10 16:17:12 AOP中有两种代理方式,分别是JDK的动态代理和CGLib的动态代理. JDK的动态代理 Proxy 提供用于创建动态代理类和实例的静态方法,它还是由这些方法创 ...
- 【Demo】CSS3元素旋转、缩放、移动或倾斜
CSS3元素旋转.缩放.移动或倾斜 代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- UVA-1604 Cubic Eight-Puzzle (双向BFS+状态压缩+限制搜索层数)
题目大意:立体的八数码问题,一次操作是滚动一次方块,问从初始状态到目标状态的最少滚动次数. 题目分析:这道题已知初始状态和目标状态,且又状态数目庞大,适宜用双向BFS.每个小方块有6种状态,整个大方格 ...
- 给 C# Expression Evaluator 增加中文变量名支持
由于一些特殊的原因,我的Expression里面需要支持中文变量名,但是C# Expression Evaluator会提示错误,在他的HelperMethods.IsAlpha()里面加上这么一段就 ...
- IOS-网络(GET请求和POST请求、HTTP通信过程、请求超时、URL转码)
// // ViewController.m // IOS_0129_HTTP请求 // // Created by ma c on 16/1/29. // Copyright © 2016年 博文科 ...
- IOS-CoreData(增删改查、表关联、分页和模糊查询、多个数据库)
1>什么是CoreData Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数 ...