一、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. fauxbar.bak

    {"options": { "almostdone":"0", "backup_searchEngines":" ...

  2. Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台

    这一篇文章是继http://www.cnblogs.com/EasonJim/p/5954155.html的升级版,由于CCNET已经过时,所以我把打包过程的CCNET工具换成Jenkins去实现,批 ...

  3. docker入门小结(二)

    11,网络使用 sudo docker run -d -P training/webapp python app.py sudo docker ps -l 这样将主机一个端口映射到容器中,由于app. ...

  4. AngularJS中选择样式

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularJSSelectClass.rar 要点,{{ctrl.name}}比<spa ...

  5. C 共用体

    C 共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置的有效方式. 定 ...

  6. 调用聚合数据新闻头条API

    基于聚合数据新闻头条接口 支持阅读新闻类型包括: 各类社会.国内.国际.体育.娱乐.科技等资讯,更新周期5-30分钟. 新闻内容类型的多选,支持皮肤功能. 使用前需要有聚合数据账号,并实名制后通过 新 ...

  7. 【Excle数据透视表】如何重命名数据透视表

    如下图,是新生成的一个数据透视简表,现在需要将其数据透视表的名称修改为:汇总数据 解决办法 修改后的效果如下:

  8. 连续调用scanf的问题总结

    对于非常简单的scanf函数,一直使用,但是却是有很多的知识点没有掌握好,现总结如下: 1.多个scanf之后,后序以 scanf("%c",&c) 当程序连续调用scan ...

  9. eeplat开发平台概念理解

    近期在学习eeplat的开发.发现其中有非常多概念实在让人easy忘记,所以谨以此文记录一笔. eeplat的开发文档里说eeplat是元数据驱动的,这个元数据什么意思.在我理解就是后台的数据库里面的 ...

  10. QTreeWidget 的用法

    Qt QTreeWidget 新建一个Qt Widgets Application,拖拽一个Tree Widget 到 ui 界面上,最后实现的效果如下: 添加代码 //test.h //在头文件里添 ...