[持续集成]Jenkins 自动化部署 Maven 工程

摘要:
简单地说,SVN用于多人共同开发同一项目并共享资源。2Nexos是Maven的仓库软件。4.Web应用程序的Web容器服务部署容器II项目代码配置1配置文件提供不同部署环境下的配置文件组src/main/resourcesdistributedebug--------调试服务器配置文件夹config.propertiesspring-xxxx.xml…test--------测试服务器配置文件夹config.propertiesspring-xxxx.xml…config.properties----------本地开发spring-xxx.xml的默认配置文件

一、Jenkins 持续部署原理图

image

基础服务:

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 工程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇图像处理-小波变换汇编语言程序入门实验二:在dos下建立子目录操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况

网络产品推广和新闻消息推送时,经常用到的工具就是用客户邮箱发送邮件了,如果是要发送的邮件量非常大的话,一般的建议是搭建自己的邮局服务器,或者是花钱购买专业的邮件群发服务,免费邮箱的SMTP适合少量的邮件群发需求。 例如Wordpress的评论邮件通知功能,每天要发送的邮件数量最多可能是几百封,如果用PHP自带的Mail()函数发送,容易被各大邮箱判定为垃圾...

XML文件的解析--libxml库函数解释

[c语言]XML文件的解析--libxml库函数解释 2009-09-02 13:12 XML文件的解析--libxml库函数解释 libxml(一)                                     摘要 Libxml是一个有免费许可的用于处理XML、可以轻松跨越多个平台的C语言库。这个指南提供它的基本函数的例子。绪论 Lib...

DHCP服务器配置实践

实验背景:在LINUX系统上为一园区网络配置DHCP服务器,给网络内各主机自动分配IP地址,地址池范围为:192.168.X.100~192.168.X.200,配置作用域选项,其中网关为:192.168.X.254,DNS地址为:192.168.X.1,域名为:abc.com,默认地址租用时间是2小时,最长租用时间为10小时;最后还要为连接打印机的PC配置...

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

Hello,大家好,我是楼下小黑哥。 B 站视频版本 那今天这期视频我们将带来一个 IDEA 中 Maven 设置的小技巧。 那这个技巧可以说非常有用,学会设置之后,再也不用担心 maven 依赖下载变慢的问题。 Maven 设置 当我们下载安装 Maven 之后,如果不修改 maven 中 setting 文件的。 那默认情况下, Maven 远程中央仓...

npm run build报错 No PostCSS Config found in

在项目根目录新建postcss.config.js文件,并对postcss进行配置: module.exports ={ plugins: [ require('autoprefixer')//自动添加css前缀 ] };...

axios请求提交的form data格式 明明是JSON格式的参数却转成了字符串格式

问题:传的参数成为了字符数格式  解决:把参数的格式转换 const params = new URLSearchParams() params.append('USER_LOGIN', 'admin') params.append('PASS_WORD', '123456')...