一、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 工程的更多相关文章

  1. 微服务下的持续集成-Jenkins自动化部署GitHub项目

    @ 目录 一.前言 二.DevOps概念 三.为什么要做持续集成 四.常见云服务 五.手动部署Jenkins 5.1 准备工作 5.2 下载 5.3 启动 5.4 配置 5.5 Jenkins 首页 ...

  2. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境

    写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...

  3. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署

    前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...

  4. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

  5. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  6. .NET 半天搭建Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  7. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  8. .NET持续集成与自动化部署之路第三篇——测试环境到生产环境的一键部署策略(Windows)

    Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言     前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟 ...

  9. NET持续集成与自动化部署

    https://www.cnblogs.com/hunternet/p/9590287.html 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们 ...

随机推荐

  1. delphi的^和@的作用

    Pint:^string;在这里将^放在数据类型之前,说明是声明的字符串指针类型!如果想取出指针引用的值的话,就将^放在声明的类型后就可以了,比如:Pint^想取Pint类型的所引用地址的话,就将@放 ...

  2. JavaScript 深克隆

    深克隆 function judgeType(arg){//判断js数据类型 return Object.prototype.toString.call(arg).slice(8,-1); } fun ...

  3. RxJava Android(RxAndroid) 开发全家桶

    RxJava 在 Android 应用开发中越来越流行,但是由于其门槛稍高,初次使用不免遇到很多问题,例如在 RxJava 常见的错误用法 和 不该使用 RxJava 的一些情况 中所描述的情况.为了 ...

  4. Fresco的使用及注意事项

    Fresco的使用及注意事项 时间 2016-10-17 18:32:12 DevWiki's Blog 原文  http://blog.devwiki.net/index.php/2016/10/1 ...

  5. Failed to read artifact descriptor for avalon-framework:avalon-framewor

    在工程中,遇到了这个问题,百度了好久并没有满意的解决方案. 网上有一种办法是: 一.修改.m2/repository/avalon-framework/avalon-framework-api/里所有 ...

  6. GIS可视化——热点图

    一.简介 SuperMap iClient for JavaScript提供了热点图(HeatMapLayer),用于渲染数据衰减趋势.颜色渐变的效果. 原理:在客户端直接渲染的栅格图,热点图的渲染需 ...

  7. 【Python数据分析】IPython基础

    一.配置启动IPython 打开cmd窗口,在dos界面下输入ipython,结果报错了!!! 出现这个问题是由于环境变量未配置(前提:已经安装了ipython),那么接下来配置环境变量 我的电脑→右 ...

  8. [魅族Degao]Androidclient性能优化

    本文由魅族科技有限公司资深Android开发project师degao(嵌入式企鹅圈原创团队成员)撰写,是degao在嵌入式企鹅圈发表的第一篇原创文章,毫无保留地总结分享其在领导魅族多个项目开发中的A ...

  9. Android中经常使用的bitmap处理方法

    收集了非常多bitmap相关的处理方法,差点儿所有应用在项目中,所以特记录下! package com.tmacsky.utils; import java.io.ByteArrayOutputStr ...

  10. 使用python处理实验数据-yechen_pro_20171231

    整体思路 1.观察文档结构: - 工况之一 - 流量一28 - 测点位置=0 -测点纵断面深度-1 -该点数据Speedxxxxxxxx.txt -测点纵断面深度-2 -测点纵断面深度-3 -... ...