Maven、Jenkins实现自动化部署-创新互联

工程实例代码:https://github.com/chocolateBlack/multi_env_folder_maven

成都创新互联服务项目包括奈曼网站建设、奈曼网站制作、奈曼网页制作以及奈曼网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,奈曼网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到奈曼省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

利用Maven、Jenkins实现项目自动化部署,能够按照bin、conf、lib文件进行打包,并能够通过Jenkins按照环境一键发不到服务器上

  1. 首先通过Maven插件实现按照不同环境,生成配置文件
    为了应对环境切换,在配置文件conf.yaml中使用Maven属性,在项目打包过程制定是按照id为dev的profile进行构建,还是以id为test的profile进行构建。其中conf.yaml和profle的配置如下:
    conf.yaml:
    path=${hdfs.path}

profile的配置如下:



    dev
    
            dev
            
            /dev/wh/source/tp
    
    
            true
    


    test
    
            dev
            
            /test/wh/source/tp
    

接下来就需要让maven能够解析conf文件夹中Maven属性,这就是maven-resources-plugin要做的事情。
开启资源过滤,并指定过滤的目录。以下配置指定src/main/conf目录下所有类型的文件开启资源过滤,并将解析后的文件指定输出到target/class/conf目录下


        
                src/main/conf/
                true
                
                        **/*.*
                
                conf
        

2.其次,利用maven-assembly-plugin插件,将编译好的项目分成bin、conf、lib目录。

  • maven-assembly-plugin的配置中,指定一个主类这样可以使用java -jar方式或者java -cp的方式运行该项目jar包;
  • 以jar-with-dependencies的方式,将项目依赖的jar包一并打包到一个jar中
  • 指定assembly.xml文件,主要用于编译好的文件分发到bin、conf、lib目录中
    maven-assembly-plugin插件的配置:
    
        org.apache.maven.plugins
        maven-assembly-plugin
        2.6
        
                make-assembly
                package
                
                        single
                
                
                        
                                
                                        
                                        com.test.HelloMaven
                                
                        
                        
                                jar-with-dependencies
                        
                        ${project.name}
                        src/main/assembly/assembly.xml
                
        
        
    

关于文件分发的assembly.xml配置:


        
        
                src/main/bin
                bin
                755
        
        
        
                target/classes/conf/
                conf
                755
                unix
                
                        *.formatted
                
        


        
        
                755
                ${project.artifactId}-${project.version}.jar
                /lib/
                runtime
                
                        ${project.groupId}:${project.artifactId}
                
        
        
        
                755
                ${project.name}-jar-with-dependencies.jar
                /lib/
                runtime
        

项目结构图:
Maven、Jenkins实现自动化部署

通过mvn package -Pdev命令打包后conf中的配置文件是按照dev环境生成的结果
解析后的conf.yaml
path=/dev/wh/source/tp
target目录下的结构图,红框标记的就是期待的结构目录
Maven、Jenkins实现自动化部署

3.项目按bin、conf、lib生成部署结构,剩下的事情就交给Jenkins,通过Jenkins以及其插件,将打包结果上传目标服务器
如下主要描述Jenkins配置的主要几个位置

  • Build标签下,要在package命令中指令 -P参数
    Maven、Jenkins实现自动化部署
  • 构建后的操作中,要将编译后的bin、conf、lib目录,通过插件Send build artifact over SSH插件上传到服务器目标目录中
    Maven、Jenkins实现自动化部署

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:Maven、Jenkins实现自动化部署-创新互联
链接分享:http://hbruida.cn/article/ceisgs.html