说明:部署传统的web应用(.war)

准备工作:

(1) 系统环境:CentOS7

(2) 安装JDK:https://www.cnblogs.com/myitnews/p/11493847.html

(3) 安装Tomcat:https://www.cnblogs.com/myitnews/p/11493980.html

  在tomcat-users.xml中配置访问服务器的用户名和密码

(4) 安装Maven:https://www.cnblogs.com/myitnews/p/11492967.html

(5) 搭建SVN服务器:https://www.cnblogs.com/myitnews/p/11492187.html

  ※ 创建访问版本库的用户名和密码
  ※ svnserve.conf 文件中 anon-access 一定要打开注释并设置为 none

一、Jenkins 主体程序安装配置

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

1. 把 jenkins.war (v2.176.3)放在 Tomcat 解压目录 /webapps 目录下

2. 打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集

vi /usr/local/tomcat7/conf/server.xml

 <Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

3.  启动 Tomcat 并通过浏览器访问:http://192.168.178.5:8080/jenkins

4. 解锁 Jenkins
依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框 
#密文同时也是 admin 账号的密码
cat /root/.jenkins/secrets/initialAdminPassword

5. 选择插件安装方式

输入密文后,初始化后,选择插件安装方式(选择哪种方式都不会对后续操作有太大影响。因为有需要的插件我们可以在后续有针对性的安装)。在这里选择“安装推荐的插件”。

开始安装插件如下:

打×的插件是由于网络传输导致的安装失败,后面再重新安装即可。
※注意:这个步骤中如果选择了安装插件则 Linux 必须能够联网。

6. 新建账号或以管理员身份继续

可以选择使用 admin 账户继续,后面有需要仍然有机会注册新账户。
 
7. 开始使用 Jenkins 
 

二、系统初始化配置

1. 系统管理界面
 
注:v2.176.3默认是英文的,若想转为中文版本(但还是不完全中文),可以在
(1) 主界面-->系统管理(Manage Jenkins)-->管理插件(Manage Plugins)-->可选插件(available)中找到Locale plugin插件进行安装
(2) 主界面-->系统管理(Manage Jenkins)-->系统设置(Configure System)界面中找到Locale,输入:zh_CN
(3) 重启Jenkins。
 
2. 全局安全配置(Configure Global Security)
 
 
注:生产环境授权策略切记不可这样配置
 
3. 全局工具配置(Global Tool Configuration)
(1) Maven配置
 
 
(2) JDK
 
 
(3) Maven
 
(4) 不使用 Git,所以删除即可。
 
最后点击 save 保存退出。
 
4. 管理插件(Manage Plugins)
 
Manage Plugins-->可选插件,搜索插件,并勾选:
点击左下方的“直接安装”按钮即可。

注:安装插件时受到网络状况的影响有可能会失败,不要紧,多试几次,直到成功。

三、创建工程

1. 准备工作
这里创建工程不是随便创建的。
(1) 在Windows下使用Eclipse工具创建一个项目名为Apple的Maven Project web项目。
package com.linhw.demo;
public class Apple {
private String apple = "jenkins test......";
public String getApple() {
return apple;
}
}
<%@page import="com.linhw.demo.Apple"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=new Apple().getApple() %>
</body>
</html>
(2) 在Linux的SVN中创建仓库
# 创建目录
mkdir apple
# 创建apple仓库
svnadmin create apple

(3) 修改SVN仓库相关的配置

authz :设置用户读写权限

passwd:设置用户名和密码

svnserve.conf:设置授权访问

(4) 在Eclipse下创建SVN仓库

仓库地址:svn://192.168.178.5/apple

(5) 在Eclipse下将Apple项目提交到SVN仓库中

不要把项目的.classpath、.project、.settings文件提交到svn仓库中。
 
2. 创建工程
 
3. 指定工程名称和工程类型
 
在主界面就可以看到任务列表:
 
4. 源码管理
在任务列表中点击 “Name” 查看项目信息,如下:
点击“配置”,如果没有Subversion,那是因为插件没有安装
 
选择 Subversion,修改以下两个地方,其余保持默认即可。
 
5. 配置构建命令并手动执行一次构建
进入工作区,提示“没有工作空间”
进入“配置”界面,找到“构建”项,新建构建并配置
 
保存后,然后手动“立即构建”
查看控制台输出:
 
6. 构建完成后部署到Tomcat
进入“配置”界面,找到“构建后操作”项
 
选择“Deploy war/ear to a container”,如果没有,那是因为没有安装插件“Deploy to container”。
 
 
 
 
再次点击“立即构建”,查看tomcat的webapps文件夹,可以看到项目已经部署到tomcat上。
 
 
7. 配置远程触发构建的TOKEN值
进入“配置”界面,找到“构建触发器”项
 
JENKINS_URL是Jenkins的访问地址:http://192.168.178.5:8080/jenkins
TOKEN_NAME是我们这里任意输入的:LHW_APPLE
在浏览器上访问上面的URL,查看Jenkins的构建历史(Build History),可以发现又进行构建了,这样我们就实现了通知Jenkins构建。
 
8. curl命令触发构建

(1) 获取crubm值

由于2.0以上版本Jenkins增加了防跨站攻击功能,因此在每次访问Jenkins api的时候都需要将crubm参数带上,否则会提示认证不通过。

浏览器访问:http://ip:port/crumbIssuer/api/json

举例:http://192.168.178.5:8080/jenkins/crumbIssuer/api/json

{"_class":"hudson.security.csrf.DefaultCrumbIssuer","crumb":"1fe463da428285deb2a0ee0181c0b44f","crumbRequestField":"Jenkins-Crumb"}

(2) curl命令说明

Linux 的 curl 命令用来发送 HTTP 请求。
-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名/密码
-H 参数:携带请求消息头信息

格式:curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口 号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]

举例:curl -X post -v -u admin:d769b039ccdc4b4dbe5624689aa81ad0 -H "Jenkins-Crumb:1fe463da428285deb2a0ee0181c0b44f" http://192.168.178.5:8080/jenkins/job/Apple/build?token=LHW_APPLE

说明:-H可以不写,如果认证不通过,再加上

在Linux命令行环境中输入上面的curl命令,发现会再次构建。

9. 编辑SVN钩子程序

# 进入svn仓库
cd /var/svn/svnrepos/apple
# 进入hooks文件夹
cd hooks
# 查看文件
ls -l

#复制,千万不能带后缀名,直接post-commit
cp post-commit.tmpl post-commit

编辑:vi post-commit

可以将内容都注释掉,然后在末尾添加我们上面的curl命令。

保存退出,给post-commit授权执行

chmod 755 post-commit

这样我们在提交代码后,就会触发钩子程序,钩子程序通知Jenkins构建。

10. 测试验证整个自动化持续集成流程

在Eclipse中提交代码,查看JenKins的构建界面,用浏览器访问项目。

测试过程过程中,可能会发现Jenkins构建的总是上一个版本的,并不是最新的(在一些较低版本会出现),怎么解决呢?

在“源码管理”中的Repository URL为:svn://192.168.178.5/apple/Apple@HEAD

jenkins+maven+svn 持续集成环境搭建的更多相关文章

  1. Linux下Jenkins+git+gradle持续集成环境搭建

    Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集  发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文   一.项目介绍 和 linux ...

  2. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  3. Jenkins + svn + maven 构建持续集成环境搭建

    Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...

  4. Jenkins Robot framework 持续集成环境搭建

    为什么我们要引入RF?其实最初我们引入RF是为了能够快速的开展自动化验收测试,为敏捷保驾护航.这其中有个重要的工具Jenkins,同时也是应群里朋友们的要求,这次就来介绍一下RF如何快速便捷的结合Je ...

  5. jenkins+donet core持续集成环境搭建

    一.Jenins+GitHub 参考 另外需要配置Global Tool Configuration 如果没有安装git,需下载安装,下载地址 二.jenkins发布donet core应用 1.配置 ...

  6. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  7. Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ————————————————— ...

  8. SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 如果你是使用 Eclipse 你需要先安装 MyEclipse,请参考:SSM 框架-02-MyEclipse ...

  9. 用Jenkins构建Django持续集成环境

    用Jenkins构建Django持续集成环境 - V2EX https://www.v2ex.com/t/32054

随机推荐

  1. <Binary Search> 81 (高频)34 (很难hard, 高频)315 (hard)354

    81. Search in Rotated Sorted Array II 如果中间的数小于最右边的数,则右半段是有序的,若中间数大于最右边数,则左半段是有序的.而如果可以有重复值,就会出现来面两种情 ...

  2. Fink| CEP

    什么是复杂事件CEP? 一个或多个由简单事件构成的事件流通过一定的规则匹配,然后输出用户想得到的数据,满足规则的复杂事件. 特征: 目标:从有序的简单事件流中发现一些高阶特征 输入:一个或多个由简单事 ...

  3. 关于书籍《区块链以太坊DApp开发实战》的内容告示

    书中所列举的以太坊 etherscan 浏览器,原链接已经不能使用国内网络正常访问了,需要翻墙,下面的链接不需要翻墙,也是 etherscan 的官方浏览器链接: 以太坊浏览器:https://cn. ...

  4. Reids Lua 模糊查询所有key 及 相对应的集合总数

    Redis 使用 Lua 模糊查询所有key 及 相对应的集合总数 .Net 4.5.1 需要引入:    StackExchange.Redis  (测试用的 1.2.4.0) 方法一: 优点:原子 ...

  5. 云原生时代, Kubernetes 多集群架构初探

    为什么我们需要多集群? 近年来,多集群架构已经成为“老生常谈”.我们喜欢高可用,喜欢异地多可用区,而多集群架构天生就具备了这样的能力.另一方面我们也希望通过多集群混合云来降低成本,利用到不同集群各自的 ...

  6. 5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO

    POSIX 同步IO.异步IO.阻塞IO.非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下. ...

  7. 基于Vue + axios + WebApi + NPOI导出Excel文件

    一.前言 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件.其业务场景,主要是列表页 ...

  8. mysql快速安装教程详解

    Mysql 一.在https://www.cnblogs.com/zyx110/p/10799387.html中下载如下图中的压缩包 二.将mysql压缩包解压至c盘根目录下 三.把配置文件中的东西复 ...

  9. MySQL5.6升级到5.7详细教程

    前言:最近看了下系统的数据库是5.6的,想着升级到5.7,特此记录 一.官网下载MySQL5.7rpm包(4个) 进入MySQL community download页面,默认是MySQL最新版8.0 ...

  10. 本机与虚拟机Ping不通

    关闭防火墙,设置虚拟机和本机在同一网段,还是ping不同 解决方法:在VMware中点击 编辑---->虚拟网络编辑器----->更改设置 ------->还原默认设置 然后重新配置 ...