SonarQube+JaCoCo+Jenkins+Maven配置

说明       

在SonarQube的官网中,发现6.0以后的版本不再支持cobertura。所以决定尝试使用JaCoCo来进行单元测试,统计单元测试覆盖率。下载最新的版本,如下:

软件名称

版本

Jenkins

Ver.2.60.1

SonarQube

6.4

Sonar-Scanner

2.8

Maven

3.3

具体安装就不多说了。

项目POM配置


		
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.5
					1.5
				
			
		
	
	
		
			sonar-coverage
			
				true
			
			
				
					
						
							org.jacoco
							jacoco-maven-plugin
							0.7.9
							
							
						
					
				
				
					
						org.jacoco
						jacoco-maven-plugin
						
							true
						
						
							
								agent-for-ut
								
									prepare-agent
								
							
							
								agent-for-it
								
									prepare-agent-integration
								
							
							
								jacoco-site
								verify
								
									report
								
							
						
					
				
			
		
	

如果不想在项目中添加,在jenkins中配置maven时,添加如下语句,效果一样

clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true package

Jenkins配置

在maven配置后添加SonarQube Scanner的配置,分析配置如下:

sonar.projectKey=sonar:multipartTest
sonar.projectName=multipartTest
sonar.projectVersion=1.0
sonar.modules=multipart-base,multipart-core
multipart-core.sonar.projectName=multipart-core
multipart-base.sonar.projectName=multipart-base
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.java.binaries=target/classes
sonar.java.coveragePlugin=jacoco
sonar.coverage.exclusions=**/entity/**

其中,项目有多个模块时使用sonar.mudules,如果为普通项目可以删除该部分配置:

sonar.modules=multipart-base,multipart-core
multipart-core.sonar.projectName=multipart-core
multipart-base.sonar.projectName=multipart-base

需要注意以下几个的配置:

sonar.java.binaries 如果该配置路径错误,则项目的单元测试覆盖率为0。之前使用过sonar.binaries配置,结果无效,仍没有单元测试覆盖率。

sonar.coverage.exclusions 排除单元测试的文件路径,配置规则见SonarQube平台中配置-->排除下的说明,如下:

SonarQube+JaCoCo+Jenkins+Maven配置_第1张图片

转载于:https://my.oschina.net/u/2375876/blog/1036846

你可能感兴趣的:(SonarQube+JaCoCo+Jenkins+Maven配置)