[持续集成]Jenkins 自动化部署 Maven 工程
一、Jenkins 持续部署原理图

基础服务:
1 SVN 服务
SVN是Subversion的简称,是一个开放源代码的版本控制系统。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(源自百度百科)
2 Nexus 服务
Maven的一种仓库软件。
3 Jenkins服务
持续集成工具。
4 Web容器服务(Tomcat)
部署web应用的容器
二、工程代码配置
1 配置文件
分别提供不同部署环境下的配置文件组(通常包括数据库配置、文件存储目录、缓存地址、中间件地址等)
src/main/resources
distribute
debug ---------- 调试服务器配置文件夹
config.properties
spring-xxxx.xml
…
test ----------- 测试服务器配置文件夹
config.properties
spring-xxxx.xml
…
prod ------------ 生产服务器配置文件夹
config.properties
spring-xxxx.xml
…
config.properties ------------ 默认本地开发使用的配置文件(直接存放在 src/main/resources 根目录)
spring-xxxx.xml
…
2 pom.xml
分别配置不同部署环境下的profile,实现在编译打包时,根据部署环境不同,替换不同的配置文件
<project>
<profiles>
…(此处可配置不同环境下的profile)
</profiles>
</project>
示例: 调试profile 配置
<profile>
<id>debug</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy todir="${basedir}/src/main/webapp/WEB-INF/classes/" overwrite="true">
<fileset dir="${basedir}/src/main/resources/distribute/debug/" />
</copy>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
注:蓝色字体实现了调试服务器配置文件的拷贝覆盖。
三、SVN应用
1 开发人员代码上传
2 为jenkins 配置代码下载账号
四、Tomcat配置
1 配置Tomat 角色 和 用户,用以实现远程部署
${Tomcat_home}/conf/tomcat-user.xml,增加角色和用户
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script"/>
五、Jenkins 构建项目配置
1 系统配置
系统管理-> Global Tool Configuration
jdk
maven
2 插件配置
系统管理-> 管理插件
安装部署插件:Deploy to container Plugin
安装版本插件:Subversion Plug-in
3 项目配置 -- 新建项目
应为不同部署环境,建立不同的Jenkins项目,分别配置不同的buiid 命令 和 不同的部署容器
(1)输入项目名称
(2)选择构建一个Maven项目
(3)SVN配置
输入 Repository URL
Add Credentials 并选择(SVN 账号密码,推荐使用为Jenkins开通的账号)
(4)Build
Root POM: pom.xml
Goal and options : clean install -U -Pdebug (此处使用调试服务器配置进行编译打包,-P后单词应对应pom.xml 中 profile 的 id)
(5)构建后操作
增加 deploy war/ear to a container
WAR/EAR files : **/target/*.war
containers : TomcatN.x
Manager user name : admin (此处配置应与tomcat 配置的用户一致)
Manager password : admin
Tomcat URL : http://IP:PORT/ (此处只应配置到端口号)
(6)保存,然后立即构建,可查看构建日志,根据构建日志,修正错误,直至显示
Finished: SUCCESS
至此,Maven项目可以实现通过Jenkins一键部署到不同服务器。
[持续集成]Jenkins 自动化部署 Maven 工程的更多相关文章
- 微服务下的持续集成-Jenkins自动化部署GitHub项目
@ 目录 一.前言 二.DevOps概念 三.为什么要做持续集成 四.常见云服务 五.手动部署Jenkins 5.1 准备工作 5.2 下载 5.3 启动 5.4 配置 5.5 Jenkins 首页 ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境
写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署
前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装
2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- .NET 半天搭建Jenkins持续集成与自动化部署系统
前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...
- .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器
使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...
- .NET持续集成与自动化部署之路第三篇——测试环境到生产环境的一键部署策略(Windows)
Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言 前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟 ...
- NET持续集成与自动化部署
https://www.cnblogs.com/hunternet/p/9590287.html 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们 ...
随机推荐
- 聊聊、Zookeeper Linux 启动
Zookeeper 在 windows 下安装比较简单,属于无脑式安装,下载下来双击脚本就可以了.前面的文章中也有介绍,今天我来写写 Linux 下的安装,以及所碰到的坑. 首先,登陆 Linux 系 ...
- IOS7开发~API变化
1.弃用 MKOverlayView 及其子类,使用类 MKOverlayRenderer: 2.弃用 Audio Toolbox framework 中的 AudioSession API,使用AV ...
- 在红米note4上实现自动安装软件
因为要做自动化测试,需要对已发布的包进行回归手测,这个时候需要手动安装APK,但是红米会弹出继续安装的按钮,手点一次比较烦,想自动点"继续安装"按钮! 感谢先行者们的分享 本文参考 ...
- 【hibernate】主键生成策略使用UUID报出如下警告:org.hibernate.id.UUIDHexGenerator - HHH000409: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values;
主键生成策略使用UUID报出如警告如下: 控制台- 2017-11-24 18:40:14 [restartedMain] WARN org.hibernate.id.UUIDHexGenerator ...
- python的依赖性安全性检查
1.safety 安装: pip install safety 使用: 检查整个系统的依赖包安全性safety check检查某个项目的依赖性安全safety check -r requirement ...
- 规划设计系列3 | SketchUp+实景三维,方案现状一起看
将SketchUp中建立的模型与实景三维模型进行集成,既可以充分发挥实景三维在地理空间记录方面的优势,又可以去除SketchUp在周边环境设计上的不足. 同时借助Wish3D Earth丰富的场景浏览 ...
- es6 - 箭头
class User { constructor(name, age) { this.name = name; this.age = age; } changeName(name) { this.na ...
- 重读金典------高质量C编程指南(林锐)-------第一章 文件结构
第一章 文件结构 C/C++程序通常由两个文件组成,一个文件保存程序的声明,称为头文件,.h 文件.一个保存程序的实现,称为定义文件.c文件. 1.1 版权与版本的声明 版权和版本的声明 ...
- sql字符串处理
sql字符串截取 substring(ParamName,start,length) start开始位置,length结束位置 DECLARE @Tel NVARCHAR(20) SET @Tel=' ...
- 如何禁止同IP站点查询和同IP站点查询的原理分析 Robots.txt屏蔽BINGBOT
很多站长工具中都有“同IP站点查询”.“IP反查域名”这种服务不少人都不知道是什么原理,其实这些服务几乎都是用BING(以前的LIVE)来实现 的,BING有个特别功能 BING抓取页面时会把站点的I ...