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