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 pipeline配置常量 jenkins实例配置_maven

 

点击【系统管理】-【系统设置】,进行系统设置。

jenkins pipeline配置常量 jenkins实例配置_Windows_02

 

主目录路径可通过新建JENKINS_HOME系统变量修改

jenkins pipeline配置常量 jenkins实例配置_jenkins_03

jenkins pipeline配置常量 jenkins实例配置_maven_04

为避免构建后启动的子进程关闭,可通过设置全局环境变量BUILD_ID=dontKillMe禁止关掉子进程,该变量也可设置在具体某个项目中。

jenkins pipeline配置常量 jenkins实例配置_Windows_05

 

配置Maven Filepath

jenkins pipeline配置常量 jenkins实例配置_jenkins_06

 

配置Jenkins URL

jenkins pipeline配置常量 jenkins实例配置_maven_07

 

配置SVN版本,1.7以上版本选择1.7即可。

jenkins pipeline配置常量 jenkins实例配置_jenkins_08

 

2.3 插件管理

点击【系统管理】-【管理插件】

jenkins pipeline配置常量 jenkins实例配置_Windows_09

在插件管理页面可看到【可更新】、【可选插件】、【已安装】、【高级】四个选项卡,用于管理插件。

jenkins pipeline配置常量 jenkins实例配置_tomcat_10


安装插件的两种方式:

一、在线安装

在可选插件中选择要安装的插件,点击【直接安装】,在线安装插件。

jenkins pipeline配置常量 jenkins实例配置_Windows_11

二、离线安装

插件下载地址:http://updates.jenkins-ci.org/download/plugins/,下载需要的离线插件,扩展名为hpi。

在高级-上传插件中,点击【选择文件】选择下载的离线插件,点击【上传】,上传并安装离线插件。

jenkins pipeline配置常量 jenkins实例配置_maven_12

2.4 创建List View

默认视图的类型是“ALL”,列不能编辑,想要可编辑列,需要创建类型为“List View”的视图。

 

jenkins pipeline配置常量 jenkins实例配置_Windows_13


jenkins pipeline配置常量 jenkins实例配置_maven_14

 

添加视图显示的Job

jenkins pipeline配置常量 jenkins实例配置_jenkins_15

删除不需要显示的列

jenkins pipeline配置常量 jenkins实例配置_Windows_16

添加需要显示的列

jenkins pipeline配置常量 jenkins实例配置_tomcat_17


jenkins pipeline配置常量 jenkins实例配置_tomcat_18

 

设置默认视图,只有非默认的视图才可以删除。

jenkins pipeline配置常量 jenkins实例配置_Windows_19

选择默认视图

jenkins pipeline配置常量 jenkins实例配置_Windows_20

 

删除非默认视图

jenkins pipeline配置常量 jenkins实例配置_maven_21



3.  Jenkins配置实例

以下实例均在Windows+Maven+SVN环境中配置。

3.1 构建Resin工程

左侧菜单中点击【新建】

jenkins pipeline配置常量 jenkins实例配置_tomcat_22

 

输入项目名称,选择“构建一个maven项目”

jenkins pipeline配置常量 jenkins实例配置_Windows_23

 

勾选“丢弃旧的构建”,保持构建的天数和最大个数根据需要设置。

jenkins pipeline配置常量 jenkins实例配置_Windows_24

源码管理中选择Subversion,在Repositroy URL中输入svn链接,第一次输入时会提示无法访问,点击【enter credential】,进入验证页面。

jenkins pipeline配置常量 jenkins实例配置_maven_25

 

选择Username/password authentication,输入svn账户和密码。

jenkins pipeline配置常量 jenkins实例配置_maven_26

  

在Pre Steps中点击Addpre-build step,选择Execute Windows batch command,输入在maven build前要执行的命令。

jenkins pipeline配置常量 jenkins实例配置_maven_27

 

::停止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

jenkins pipeline配置常量 jenkins实例配置_tomcat_28

 

在Build中输入执行的maven命令

jenkins pipeline配置常量 jenkins实例配置_maven_29

 

在Post Steps中点击Addpost-build step,选择Execute Windows batch command,输入在maven build后要执行的命令。

jenkins pipeline配置常量 jenkins实例配置_maven_30

 

::删除部署目录下的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 pipeline配置常量 jenkins实例配置_jenkins_31

 

在Jenkins首页点击如下图标即可构建项目。

jenkins pipeline配置常量 jenkins实例配置_maven_32

3.2 构建Weblogic工程

在插件管理中搜索Publish Over SSH并安装

jenkins pipeline配置常量 jenkins实例配置_maven_33

  

在系统设置中配置Publish over SSH信息

jenkins pipeline配置常量 jenkins实例配置_jenkins_34

新建项目,除Pre Steps、Post Steps外,其他配置与构建Resin一致,可参考【3.1 构建Resin工程】。

Pre Steps设置:

jenkins pipeline配置常量 jenkins实例配置_jenkins_35

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

jenkins pipeline配置常量 jenkins实例配置_maven_36

  

Post Steps设置:

jenkins pipeline配置常量 jenkins实例配置_tomcat_37

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

jenkins pipeline配置常量 jenkins实例配置_maven_38

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设置:

jenkins pipeline配置常量 jenkins实例配置_jenkins_39

::删除旧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

jenkins pipeline配置常量 jenkins实例配置_jenkins_40


3.4 CheckStyle插件安装配置


在pom.xml中添加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

jenkins pipeline配置常量 jenkins实例配置_maven_41


 

构建设置中勾选“Publish Checkstyle analysis results”

jenkins pipeline配置常量 jenkins实例配置_tomcat_42


构建后点击【Checkstyle Warnings】即可看到Checkstyle检查结果

jenkins pipeline配置常量 jenkins实例配置_jenkins_43

3.5 FindBugs插件安装配置


在pom.xml中添加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

jenkins pipeline配置常量 jenkins实例配置_maven_44


 

构建设置中勾选“Publish FindBugs analysis results”

jenkins pipeline配置常量 jenkins实例配置_tomcat_45


 

构建后点击【FindBugs Warnings】即可看到FindBugs检查结果


jenkins pipeline配置常量 jenkins实例配置_maven_46


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

jenkins pipeline配置常量 jenkins实例配置_jenkins_47

构建设置中勾选“PublishPMD analysis results”

jenkins pipeline配置常量 jenkins实例配置_tomcat_48

 

构建后点击【PMDWarnings】即可看到FindBugs检查结果

jenkins pipeline配置常量 jenkins实例配置_maven_49

3.7 Static Analysis Collector插件安装配置


Static Analysis Collector 可以整合Checkstyle、FindBugs和PMD的检查结果。
在【系统管理】-【管理插件】中添加Static Analysis Collector Plug-in。
Build中输入clean compile findbugs:findbugs checkstyle:checkstyle pmd:pmd


jenkins pipeline配置常量 jenkins实例配置_tomcat_50


 

在增加构建后操作步骤中选择“Publish combined analysis results”

jenkins pipeline配置常量 jenkins实例配置_Windows_51


 

在Publish combined analysis results中勾选Checkstyle、FindBugs、PMD warnings

jenkins pipeline配置常量 jenkins实例配置_jenkins_52


 

构建后点击【Static Analysis Warnings】即可看到整合后的检查结果


jenkins pipeline配置常量 jenkins实例配置_Windows_53




3.8 构建Sonar

运行Sonar

Build中输入clean sonar:sonar

 

jenkins pipeline配置常量 jenkins实例配置_Windows_54

 

浏览器中输入http://ip:端口,访问sonar,即可看到分析结果。


jenkins pipeline配置常量 jenkins实例配置_maven_55




3.9 JaCoCo插件安装配置


在pom.xml中添加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

jenkins pipeline配置常量 jenkins实例配置_tomcat_56

 

在增加构建后操作步骤中选择Record JaCoCo coverage report。

jenkins pipeline配置常量 jenkins实例配置_maven_57

根据需要添加配置健康报告阈值

  

jenkins pipeline配置常量 jenkins实例配置_maven_58


构建后点击【Coverage Report】即可看到覆盖率报告

jenkins pipeline配置常量 jenkins实例配置_Windows_59