sonarqube 与 gradle jacoco 构建代码质量环境

sonarqube+jacoco+gradle

sonarqube :代码质量管理工具

jacoco:覆盖率工具

gradle:构建继承环境

step1.安装sonarqube服务器

网上有很多基础教程,教如何创建;

但需要强调,mysql版本必须是小于8的,因为sonarqube中使用了mysql8的关键字作为表明(groups);

step2.配置build.gradle文件

期初项目是无组织的,所以文件夹并没有按照标准目录构建。因此后续的配置中包含了许多指定文件夹的操作。

2.1)build.gradle 文件 

配置重点:①指定插件jacoco ②指定sonarqube.gradle配置文件③指定test&src测试文件位置

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven'
archivesBaseName="xxx"
def releaseVersion = "8.0.0-alpha01.P002"
group = "cn.xxx.xxx.xxx"
version = releaseVersion

artifacts {
    archives jar
}


repositories {
mavenCentral()
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
sourceSets {
	main {
		resources {
            srcDir 'src'
        }
        java{
           	srcDir 'src'
     	}
	}
	test{
		resources {
            srcDir 'src'
        }
		java{
			srcDir 'src'
			srcDir 'test'
     	}
	}
}
jar {
	from {
        configurations.runtime.collect{it.isDirectory() ? it : zipTree(it)}
    }
    manifest {
        attributes 'Main-Class': 'jp.proactive.bridge.xpt.CurlToChangeWithLayoutMore'
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'

}
dependencies {
	testCompile group: 'junit', name: 'junit', version: '4.13-beta-3'
    compile ('commons-io:commons-io:2.4')
    compile ('net.sourceforge.javacsv:javacsv:2.0')
    compile ('log4j:log4j:1.2.15'){
    	exclude group: 'javax.jms', module: 'jms'
    	exclude group: 'com.sun.jmx', module: 'jmxri'
		exclude group: 'com.sun.jdmk', module: 'jmxtools'
    }
	}
	
tasks.withType(JavaCompile) {
options.encoding = "utf-8"
}



uploadArchives {
    def nexusUser = System.getenv("NEXUS_USERNAME")
    def nexusPassword = System.getenv("NEXUS_PASSWORD")
    def nexusUrlSnapshot = "https://xxx.xxx.xxx.xxx/nexus/repository/maven-snapshots/"
    def nexusUrlRelease = "https://xxx.xxx.xxx.xxx/nexus/repository/maven-releases/"
    def isRelease = ((System.getenv("isRelease") == "true") ? true : false)
    repositories{
        mavenDeployer {
            snapshotRepository(url: nexusUrlSnapshot) {
                authentication (userName: nexusUser, password: nexusPassword)
            }
            repository(url: nexusUrlRelease) {
                authentication (userName: nexusUser, password: nexusPassword)
            }
            pom.version = (isRelease ? releaseVersion : releaseVersion + "-SNAPSHOT")
            pom.artifactId = "artifactId "
            pom.groupId = "groupId "
        }
    }
}

// 配置jacoco插件
apply plugin: 'jacoco'

// 指定构建是的配置
buildscript {
    repositories {
mavenCentral()
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
    dependencies {
        classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1'
    }
}

//指定需要关联的配置文件,sonarqube.gradle中包含了sonarQube有关配置
apply from: rootProject.file('sonarqube.gradle')

2) 指定环境变量

settings.gradle

rootProject.name="xxx-xxxx-xxx"

3)指定sonarQube配置


apply plugin: 'org.sonarqube'
sonarqube {
    properties {
        properties["sonar.scm.enabled"] = "false"
        properties["sonar.scm.disabled"] = "true"
        properties["sonar.projectName"] = "cn.xxx.xxx.xxx::" + project.name
		properties["sonar.host.url"] = "http://xxx.xxx.xxx.xxx:9000"
		properties["sonar.login"] = "admin"
		properties["sonar.password"] = "admin"
		properties["sonar.sources"] = "src"
		properties["sonar.tests"] = "test"
		properties["sonar.java.coveragePlugin"] = "jacoco"
		properties["sonar.dynamicAnalysis"] = "reuseReports"
		properties["sonar.jacoco.reportPaths"] = "./target/coverage-reports/jacoco-unit.exec"
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值