Jenkins构建maven

Jenkins安装
Jenkins构建android
Jenkins构建maven
Jenkins构建nodejs应用发布到nginx
Jenkins权限管理

1、环境

  • maven
  • Deploy to container Plugin插件
  • 使用spring、spring mvc框架

2、目标

需要达成以下目标:

  • release和debug版本分别替换不同的参数
  • 从SVN拉取代码编译release版后直接发布到tomcat服务器

3、本地工程改造

主要修改pom.xml




    4.0.0

    com.anfa
    AnfaSmart
    1.0-SNAPSHOT
    war

    
        UTF-8
        1.7
        1.7

        
        4.3.9.RELEASE
        
        1.6.6
        1.2.17
        
        4.12
        
        3.4.6
        
        1.3.2
        
        5.1.38
        
        
        2.8.0
        2.7.2
    

    
        
        
            io.netty
            netty-all
            4.1.6.Final
            compile
        
        
            cn.jpush.api
            jpush-client
            3.2.7
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson-core.version}
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            ${jackson-core.version}
        
        
            com.fasterxml.jackson.core
            jackson-core
            ${jackson-core.version}
        

        
            com.google.code.gson
            gson
            2.8.5
        

        
            commons-fileupload
            commons-fileupload
            1.3
        

        
        
            org.springframework.data
            spring-data-redis
            1.6.2.RELEASE
        
        
            redis.clients
            jedis
            ${redis.version}
        
        

        
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        

        
        
            mysql
            mysql-connector-java
            ${mysql.connect}
        
        
        
            commons-dbcp
            commons-dbcp
            1.4
        
        

        
        
            org.mybatis
            mybatis-spring
            ${mybatis.spring.version}
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        

        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
        
        
            junit
            junit
            ${junit.version}
            test
        
        
            log4j
            log4j
            ${log4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        

        
            org.springframework
            spring-core
            ${spring.version}
        

        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        

        
            org.springframework
            spring-web
            ${spring.version}
        


        
        
            org.springframework
            spring-test
            ${spring.version}
            test
        


        
        
            javax
            javaee-api
            8.0
            provided
        

        
        
            javax
            javaee-web-api
            8.0
            provided
        

        
            com.glimmer.lucien.connect
            connect
            1.0.0
        
    

    
        anfa
        
            
                
                    maven-clean-plugin
                    3.0.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.7.0
                
                
                    maven-surefire-plugin
                    2.20.1
                
                
                    maven-war-plugin
                    3.2.0
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
        
            
            
                true  
                ${project.basedir}/src/main/resources
                
                    **/*
                
            
        
    
    
        
        
            dev
            
                true
            
            
                
                D:\\logs\\logs.log
                info, ServerDailyRollingFile, stdout
                jdbc:mysql://192.168.1.81:3306/handy?allowMultiQueries=true&characterEncoding=utf8&useUnicode=true
                tcp://192.168.1.91
                handy_lucien_dev
                handy_system_dev
                
            
        
        
        
            release
            
                
                /home/server/logs/handy/business/business.log
                info, ServerDailyRollingFile
                jdbc:mysql://127.0.0.1:3306/handy?allowMultiQueries=true&characterEncoding=utf8&useUnicode=true
                tcp://192.168.1.91
                handy_lucien_release
                handy_system_release
                
            
        
    


properties文件里主要配置项

mqUrl=${mqUrl}
userName=${userName}
clientId=${clientId}
jdbc_url=${databaseUrl}

log4j.properties

log4j.rootLogger=${logLevel}
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=${logPath}
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n

spring-mvc.xml

代码里引用properties值

    @Value("${mqUrl}")
    private String mqUrl;
    @Value("${userName}")
    private String USER_NAME;
    @Value("${clientId}")
    private String CLIENT_ID;

4、配置Jenkins

由于前面android构建已经详细描述过,这里只截取关键位置图片。

新建任务->自由风格任务,填写描述和SVN信息


Jenkins构建maven_第1张图片

Build部分,选择调用顶层maven目标,编译成功后选择前面的deploy war插件选项,其中认证部分填写tomcat的账号密码,详见下文遇到的问题及解决办法。

Jenkins构建maven_第2张图片

一下maven指令代表跳过测试,编译release版本
clean install -Dmaven.test.skip=true -Prelease

5、遇到的问题及解决办法

  • 本地工程改造时遇到Could not resolve placeholder '' in value "${}"

  • Tomcat的发布问题
    ${catalina.home}/conf/tomcat-users.xml
    分配角色和配置登录验证用户密码

 
  
  
  
  
  
  

${catalina.home}/conf/Catalina/localhost目录下配置2个访问控制文件
manager.xml:


    

host-manager.xml:


    

你可能感兴趣的:(Jenkins构建maven)