1. 安装前准备
JDK、Resin、Weblogic、Maven
2. 安装配置Jenkins
2.1 安装Jenkins
部署jenkins.war到Tomcat、Resin等中间件,本文以Resion为例,复制jenkins.war到resin的webapps中进行部署。
2.2 系统设置
启动Resin,在浏览器中访问http://ip:端口/jenkins/。
点击【系统管理】-【系统设置】,进行系统设置。
主目录路径可通过新建JENKINS_HOME系统变量修改
为避免构建后启动的子进程关闭,可通过设置全局环境变量BUILD_ID=dontKillMe禁止关掉子进程,该变量也可设置在具体某个项目中。
配置Maven Filepath
配置Jenkins URL
配置SVN版本,1.7以上版本选择1.7即可。
2.3 插件管理
点击【系统管理】-【管理插件】
在插件管理页面可看到【可更新】、【可选插件】、【已安装】、【高级】四个选项卡,用于管理插件。
安装插件的两种方式:
一、在线安装
在可选插件中选择要安装的插件,点击【直接安装】,在线安装插件。
二、离线安装
插件下载地址:http://updates.jenkins-ci.org/download/plugins/,下载需要的离线插件,扩展名为hpi。
在高级-上传插件中,点击【选择文件】选择下载的离线插件,点击【上传】,上传并安装离线插件。
2.4 创建List View
默认视图的类型是“ALL”,列不能编辑,想要可编辑列,需要创建类型为“List View”的视图。
添加视图显示的Job
删除不需要显示的列
添加需要显示的列
设置默认视图,只有非默认的视图才可以删除。
选择默认视图
删除非默认视图
3. Jenkins配置实例
以下实例均在Windows+Maven+SVN环境中配置。
3.1 构建Resin工程
左侧菜单中点击【新建】
输入项目名称,选择“构建一个maven项目”
勾选“丢弃旧的构建”,保持构建的天数和最大个数根据需要设置。
源码管理中选择Subversion,在Repositroy URL中输入svn链接,第一次输入时会提示无法访问,点击【enter credential】,进入验证页面。
选择Username/password authentication,输入svn账户和密码。
在Pre Steps中点击Addpre-build step,选择Execute Windows batch command,输入在maven build前要执行的命令。
::停止server为xxx的实例
D:\programs\resin-3.1.15\httpd.exe -server xxx stop
::延迟40秒,等待实例停止结束
C:\Windows\System32\ping -n 40 127.0.0.1>nul
在Build中输入执行的maven命令
在Post Steps中点击Addpost-build step,选择Execute Windows batch command,输入在maven build后要执行的命令。
::删除部署目录下的web应用
rd/s/q D:\programs\resin-3.1.15\webapps-xxx\xxx
::复制maven build后的war到resin的部署路径
copyD:\programs\jenkins\workspace\xxx-windows-resin\target\xxx.war
D:\programs\resin-3.1.15\webapps-xxx\xxx.war
::启用server为xxx的实例
D:\programs\resin-3.1.15\httpd.exe -server xxxstart
::延迟40秒等待实例启动成功
C:\Windows\System32\ping -n 40 127.0.0.1>nul
在Jenkins首页点击如下图标即可构建项目。
3.2 构建Weblogic工程
在插件管理中搜索Publish Over SSH并安装
在系统设置中配置Publish over SSH信息
新建项目,除Pre Steps、Post Steps外,其他配置与构建Resin一致,可参考【3.1 构建Resin工程】。
Pre Steps设置:
Name:系统设置中Publish over SSH中的Name。
Exec command:要执行的命令
#切换至weblogic域目录
cd/usr/oracle/weblogic/user_projects/domains/xxx_domain/bin
#停止服务
./stopWebLogic.sh
#删除应用目录xxx
rm -rf /var/xxx
#删除xxx.war
rm -f /var/xxx.war
Post Steps设置:
Name:系统设置中Publish over SSH中的Name。
Source files:要上传到Liunx的文件,主要要有路径。
Remove prefix:Source files中文件名以外的内容。
Remote directory:要上传至Linux的目录。
Exec command:要执行的命令
#切换至var
cd /var
#解压war至xxx目录
unzip -oq xxx.war -d xxx
#切换至weblogic域目录
cd /usr/oracle/weblogic/user_projects/domains/xxx_domain
#启动weblogic服务
./startWebLogic.sh
3.3 构建Tomcat工程
新建项目,除Pre Steps、Post Steps外,其他配置与构建Resin一致,可参考【3.1 构建Resin工程】。
Pre Steps设置:
::停止服务
D:\programs\tomcat\tomcat-instances\xxx-ins\stop.bat
::延迟30秒,等待停止完成
C:\Windows\System32\ping-n 30 127.0.0.1>nul
Post Steps设置:
::删除旧xxx应用目录
rd/s/q D:\programs\tomcat\tomcat-instances\xxx-ins\webapps\xxx
::延迟10秒,等待删除完成
C:\Windows\System32\ping-n 10 127.0.0.1>nul
::复制svn中的xxx至部署目录,uncopy.txt为排除复制的文件列表文件
echo d |C:\Windows\System32\xcopy
D:\programs\jenkins\workspace\xxx-windows-tomcat\target\xxx D:\programs\tomcat\tomcat-instances\xxx-ins\webapps\xxx/e/q/y/exclude:D:\programs\jenkins\workspace\xxx-windows-tomcat\uncopy.txt
::延迟10秒,等待复制完成
C:\Windows\System32\ping-n 10 127.0.0.1>nul
::启动服务
D:\programs\tomcat\tomcat-instances\xxx-ins\start.bat
::延迟30秒,等待启动完成
C:\Windows\System32\ping-n 30 127.0.0.1>nul
3.4 CheckStyle插件安装配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.15</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</reporting>
在【系统管理】-【管理插件】中添加Checkstyle Plug-in。
项目设置除下面2项外,其它请参考【3.1 构建Resin工程】配置,
Build中输入checkstyle:checkstyle
构建设置中勾选“Publish Checkstyle analysis results”
构建后点击【Checkstyle Warnings】即可看到Checkstyle检查结果
3.5 FindBugs插件安装配置
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<effort>Default</effort>
<findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.5</version>
</plugin>
</plugins>
</reporting>
在【系统管理】-【管理插件】中添加FindBugs Plug-in。
Build中输入clean compile findbugs:findbugs
构建设置中勾选“Publish FindBugs analysis results”
构建后点击【FindBugs Warnings】即可看到FindBugs检查结果
3.6 PMD插件安装配置
在pom.xml中添加PMD插件
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.2</version>
<configuration>
<rulesets>
<ruleset>${basedir}/src/test/resources/code-analysis-rules/pmd-java.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</pluginManagement>
在【系统管理】-【管理插件】中添加PMD Plug-in。
Build中输入clean pmd:pmd
构建设置中勾选“PublishPMD analysis results”
构建后点击【PMDWarnings】即可看到FindBugs检查结果
3.7 Static Analysis Collector插件安装配置
在【系统管理】-【管理插件】中添加Static Analysis Collector Plug-in。
Build中输入clean compile findbugs:findbugs checkstyle:checkstyle pmd:pmd
在增加构建后操作步骤中选择“Publish combined analysis results”
在Publish combined analysis results中勾选Checkstyle、FindBugs、PMD warnings
构建后点击【Static Analysis Warnings】即可看到整合后的检查结果
3.8 构建Sonar
运行Sonar
Build中输入clean sonar:sonar
浏览器中输入http://ip:端口,访问sonar,即可看到分析结果。
3.9 JaCoCo插件安装配置
</plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.4.201502262128</version>
</plugin>
</plugins>
</pluginManagement>
在【系统管理】-【管理插件】中添加JaCoCo插件。
在Pre Steps中输入如下命令:
::删除不做统计的xxx包的java代码
rd/s/qD:\programs\jenkins\workspace\xxx-junit\src\main\java\com\xxx\xxx\xxx
在Build中输入clean install
在增加构建后操作步骤中选择Record JaCoCo coverage report。
根据需要添加配置健康报告阈值
构建后点击【Coverage Report】即可看到覆盖率报告