- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将声纳属性添加到我的build.gradle文件中,以便在使用gradle构建项目时将项目上传到服务器。下面是我的build.gradle文件。
import org.tmatesoft.svn.core.wc
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'findbugs'
apply plugin: 'sonar-runner'
apply plugin: "jacoco"
group = 'com.example.service'
sourceCompatibility = 1.5
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
}
}
findbugs {
// make findbugs non build breaking
ignoreFailures = true
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
compile 'org.apache.commons:commons-lang3:3.1'
compile "org.codehaus.sonar.runner:sonar-runner-api:2.4"
testCompile group: 'junit', name: 'junit', version: '4.+'
}
test {
systemProperties 'property': 'value'
}
sonarRunner {
sonarProperties {
property "sonar.host.url", "http://localhost:9000"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.projectName", "$project.name"
property "sonar.projectKey", "$project.group:$project.name"
property "sonar.projectBaseDir","$project.projectDir"
property "sonar.working.directory","$project.buildDir/sonar"
property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
}
}
test {
jacoco {
destinationFile = file("$buildDir/jacoco/test.exec")
}
}
uploadArchives {
repositories {
mavenLocal()
}
}
最佳答案
查看我的几篇文章,您会找到想要的东西。主要,您必须使用:
allprojects {
apply plugin: 'java'
apply plugin: 'codenarc'
apply plugin: 'pmd'
apply plugin: 'findbugs'
apply plugin: 'checkstyle'
apply plugin: 'jacoco'
apply plugin: 'sonar-runner'
//JavaCompile(Works with recent Gradle versions) or Compile (works with Gradle 1.6)
//tasks.withType(Compile) {
tasks.withType(JavaCompile) {
options.debug = true
options.compilerArgs = ["-g"]
}
//You don't need sourceSets if your project is following Maven/Gradle standard structure. In my case, we don't follow src/main/java but have src/java thus, in the global file, I have dont_change_me as the value for sourceSets main java and I'm setting it to src/java in the Project's build.gradle. dont_change_me is required here as I'm/was using sourceSet.main.xx.xxx values in few of the tasks here.
sourceSets {
main {
java {
srcDir 'dont_change_me'
}
resources {
srcDir 'dont_change_me'
}
}
test {
java {
srcDir 'dont_change_me'
}
resources {
srcDir 'dont_change_me'
}
}
integrationTest {
java {
srcDir 'dont_change_me'
}
resources {
srcDir 'dont_change_me'
}
}
acceptanceTest {
java {
srcDir 'dont_change_me'
}
resources {
srcDir 'dont_change_me'
}
}
}
def sonarServerUrl = "kobalori.company.com"
sonarRunner {
sonarProperties {
property "sonar.host.url", "http://$sonarServerUrl:9000"
property "sonar.jdbc.url", "jdbc:h2:tcp://$sonarServerUrl:9092/sonar"
property "sonar.jdbc.driverClassName", "org.h2.Driver"
property "sonar.jdbc.username", "sonar"
property "sonar.jdbc.password", "sonar"
property "sonar.junit.reportsPath", "build/test-results/UT"
property "sonar.surefire.reportsPath", "build/test-results/UT"
//property "sonar.dynamicAnalysis", "reuseReports"
property "sonar.binaries", "build/classes/main"
property "sonar.java.binaries", "build/classes/main"
// property "sonar.libraries", "build/libs/*.jar"
property "sonar.sources", "src/java"
//property "sonar.sources", "src/main/groovy"
//property "sonar.sources", "src/java, src/main/groovy"
//property "sonar.tests", "test/java, src/test/groovy, src/groovy-test, src/java-test"
//property "sonar.tests", "src/test/groovy"
property "sonar.tests", "test/java, src/java-test"
//properties ["sonar.sources"] = sourceSets.main.allSource.srcDirs
//properties ["sonar.tests"] += sourceSets.test.allJava.srcDirs
//properties ["sonar.tests"] += sourceSets.integrationTest.allJava.srcDirs
}
}
//sonarRunner {
// toolVersion = '2.4'
//}
checkstyle {
configFile = new File(rootDir, "config/checkstyle.xml")
ignoreFailures = true
//sourceSets = [sourceSets.main, sourceSets.test, sourceSets.integrationTest]
sourceSets = [sourceSets.main]
}
findbugs {
ignoreFailures = true
sourceSets = [sourceSets.main]
//toolVersion = "2.0.3"
}
// pmd {
// ruleSets = ["basic", "braces", "design"]
// ignoreFailures = true
// }
//Required with Gradle 2.0+ -- 2.0+ -- 2.3
pmd {
ruleSets = ["java-basic", "java-braces", "java-design" ]
ignoreFailures = true
}
//Try this or later version too.
//pmd {
// toolVersion = '4.3'
//}
jacoco {
//toolVersion = "0.6.2.201302030002"
//toolVersion = "0.7.0.201403182114"
//toolVersion = "0.7.1.201404171759"
toolVersion = "0.7.2.201409121644"
reportsDir = file("$buildDir/customJacocoReportDir")
}
task testReport(type: TestReport) {
destinationDir = file("$buildDir/reports/tests/allTests")
//testResultDirs = file("$buildDir/test-results/allTests")
}
test {
maxParallelForks = 5
forkEvery = 50
ignoreFailures = true
//testReportDir = file("$buildDir/reports/tests/UT")
//destinationDir = file("$buildDir/reports/tests/UT")
//testResultsDir = file("$buildDir/test-results/UT")
//testLogging.showStandardStreams = true
//onOutput { descriptor, event ->
// logger.lifecycle("Test: " + descriptor + " produced standard out/err: " + event.message )
//}
//Following Jacoco test section is required only in Jenkins instance extra common file
jacoco {
//The following vars works ONLY with 1.6 of Gradle
// destPath = file("$buildDir/jacoco/UT/jacocoUT.exec")
// classDumpPath = file("$buildDir/jacoco/UT/classpathdumps")
//Following vars works only with versions >= 1.7 version of Gradle
destinationFile = file("$buildDir/jacoco/UT/jacocoUT.exec")
// classDumpFile = file("$buildDir/jacoco/UT/classpathdumps")
}
}
task integrationTest( type: Test) {
//Always run tests
outputs.upToDateWhen { false }
ignoreFailures = true
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
//testReportDir = file("$buildDir/reports/tests/IT")
//testResultsDir = file("$buildDir/test-results/IT")
//Following Jacoco test section is required only in Jenkins instance extra common file
jacoco {
//This works with 1.6
//destPath = file("$buildDir/jacoco/IT/jacocoIT.exec")
// classDumpPath = file("$buildDir/jacoco/IT/classpathdumps")
//Following works only with versions >= 1.7 version of Gradle
destinationFile = file("$buildDir/jacoco/IT/jacocoIT.exec")
// classDumpFile = file("$buildDir/jacoco/IT/classpathdumps")
}
}
task acceptanceTest ( type: Test) {
//Always run tests
outputs.upToDateWhen { false }
ignoreFailures = true
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
//testReportDir = file("$buildDir/reports/tests/AT")
//testResultsDir = file("$buildDir/test-results/AT")
//Following Jacoco test section is required only in Jenkins instance extra common file
jacoco {
//This works with 1.6
//destPath = file("$buildDir/jacoco/AT/jacocoAT.exec")
// classDumpPath = file("$buildDir/jacoco/AT/classpathdumps")
//Following works only with versions >= 1.7 version of Gradle
destinationFile = file("$buildDir/jacoco/AT/jacocoAT.exec")
// classDumpFile = file("$buildDir/jacoco/AT/classpathdumps")
}
}
jacocoTestReport {
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
//ignoreFailures = true
//executionData = files('build/jacoco/UT/jacocoUT.exec')
//executionData = files('build/jacoco/IT/jacocoIT.exec')
//executionData = files('build/jacoco/UT/jacocoUT.exec', 'build/jacoco/IT/jacocoIT.exec')
//executionData = files(['build/jacoco/UT/jacocoUT.exec', 'build/jacoco/IT/jacocoIT.exec'])
executionData = fileTree(dir: 'build/jacoco', include: '**/*.exec')
reports {
xml{
enabled true
//Following value is a file
destination "${buildDir}/reports/jacoco/xml/jacoco.xml"
}
csv.enabled false
html {
enabled true
//Following value is a folder
destination "${buildDir}/reports/jacoco/html"
}
}
//sourceDirectories = files(sourceSets.main.allJava.srcDirs)
sourceDirectories = files(['src/java','src/main/java', 'src/main/groovy'])
classDirectories = files('build/classes/main')
//------------------------------------------
//additionalSourceDirs = files(['test/java','test/groovy','src/java-test', 'src/groovy-test'])
//additionalSourceDirs = files(['src/test/groovy'])
//additionalSourceDirs += files('src/java-test')
//additionalClassDirs = files('build/classes/test')
//additionalClassDirs += files('build/classes/integrationTest')
//additionalClassDirs += files('build/classes/acceptanceTest')
//------------------------------------------
//IGNORE THE FOLLOWING
//------------------------------------------
//sourceDirectories = files(sourceSets.main.allJava.srcDirs)
//classDirectories = files(sourceSets.main.output.classesDir)
//classDirectories = files("build/classes/main")
//additionalSourceDirs = files("test/java")
//additionalSourceDirs += files("src/java-test")
//additionalClassDirs = files("build/classes/test")
//additionalClassDirs += files("build/classes/integrationTest")
//additionalSourceDirs = fileTree(dir: "test", include: "**/*.*")
//additionalSourceDirs += fileTree(dir: "src/java-test", include: "**/*.*")
//additionalClassDirs = fileTree(dir: "build/*est", include: "**/*.class")
//additionalClassDirs += fileTree(dir: "build/jacoco/*T/classpathdumps/com/thc", include: "**/*.class")
//additionalClassDirectories = fileTree(dir: "build/*est", include: "**/*.class")
//additionalClassDirectories += fileTree(dir: "build/jacoco/*T/classpathdumps/com/thc", include: "**/*.class")
//additionalSourceDirs = files(['test/java', 'src/java-test'])
//additionalSourceDirs = files(sourceSets.test.allJava.srcDirs)
//additionalSourceDirs += files(sourceSets.integrationTest.allJava.srcDirs)
//additionalSourceDirs += files(sourceSets.acceptanceTest.allJava.srcDirs)
// additionalClassDirs = files(['build/jacoco/UT/classpathdumps/com/thc', 'build/jacoco/IT/classpathdumps/com/thc'])
//additionalClassDirs = files(['build/jacoco/UT/classpathdumps/com/thc'])
//additionalSourceDirs = files('test/java', 'src/java-test')
// additionalClassDirs = files('build/jacoco/UT/classpathdumps/com/thc', 'build/jacoco/IT/classpathdumps/com/thc')
//sourceDirectories = files('src/main/java')
// classDirectories = files('build/classes/main')
//sourceDirectories = fileTree('src/main/java')
// classDirectories = fileTree('build/classes/main')
//additionalSourceDirectories = fileTree('test/java', 'test/resources', 'src/java-test')
// additionalClassDirectories = fileTree('build/classes/test', 'build/classes/integrationTest')
//additionalSourceDirs = files(sourceSets.test.allJava.srcDirs,sourceSets.integrationTest.allJava.srcDirs)
//additionalSourceDirs = files(sourceSets.*.allJava.srcDirs)
//additionalSourceDirs += files(sourceSets.test.allJava.srcDirs)
//additionalSourceDirs += files(sourceSets.integrationTest.allJava.srcDirs)
//additionalSourceDirs = files('src/java', 'test/java', 'test/resources', 'src/java-test', 'conf')
//additionalClasseDirs = files('build/classes')
//executionData = files('build/jacoco/test.exec', 'build/jacoco/integrationTest.exec', 'build/jacoco/acceptanceTest.exec')
//additionalSourceDirs = files(sourceSets.integrationTest.allSource.srcDirs)
//additionalSourceDirs = files('src/java', 'test/java', 'test/resources', 'src/java-test', 'conf')
//additionalSourceDirs = files(sourceSets.test.allJava.srcDirs)
//additionalSourceDirs = files(sourceSets.integrationTest.allJava.srcDirs)
//additionalSourceDirs = files([sourceSets.main.allJava.srcDirs)
}
}
gradle clean build jacocoTestReport
export PROJ_EXTRA_JVM_OPTS=-javaagent:tomcat/jacocoagent.jar=destfile=build/jacoco/IT/jacocoIT.exec,append=false
gradle integrationTest
gradle jacocoTestReport -x test -x testClasses sonarRunner
--stacktrace -x test -x testClasses -Dsonar.jacoco.itReportPath=build/jacoco/${testType}/jacoco${testType}.exec -Dsonar.sources=src/java -Dsonar.java.binaries=build/classes/main -Dsonar.binaries="build/classes/main" -Dsonar.tests=test/java,src/java-test -Dsonar.jacoco.reportPath=build/jacoco/UT/jacocoUT.exec -Dsonar.junit.reportsPath=build/test-results -Dsonar.surefire.reportsPath=build/test-results -Dsonar.dynamicAnalysis=reuseReports -Dsonar.build-stability.url=jenkins:${JENKINS_URL}/job/${JOB_NAME} -Dsonar.scm.url=scm:svn:${SVN_URL}
关于gradle - 如何将gradle构建java项目上传到 Sonar 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29511760/
谁能解释一下 Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"之间的区别\") 和 Server.MapPath("/")? 最佳答案
我不知道,为什么我们要使用 Server.UrlEncode() & Server.UrlDecode()?!在 QueryString 中我们看到 URL 中的任何内容,那么为什么我们要对它们进行编
我已经通过 WHM 在我的一个域上安装了 ssl 证书。网站正在使用 https://xyz.com . 但是它不适用于 https://www.xyz.com .我已经检查了证书,它也适用于 www
我已经使用 WMI 检测操作系统上是否存在防病毒软件,itz 正常工作并通过使用命名空间向我显示防病毒信息,例如 win xp 和 window7 上的名称和实例 ID:\root\SecurityC
我们有 hive 0.10 版本,我们想知道是否应该使用 Hive Server 1 或 Hive Server2。另一个问题是连接到在端口 10000 上运行的 Hive 服务器,使用 3rd 方工
我想在 C++ 中使用 Windows Server API 设置一个 HTTPS 服务器,我使用了示例代码,它在 HTTP 上工作正常,但我就是不能让它在 HTTPS 上工作。 (我不想要客户端 S
我写了一个非常基本的类来发送电子邮件。我用 smtp 服务器对其进行了测试,它工作正常,但是当我尝试使用我公司的交换服务器时,它给出了这个异常: SMTP 服务器需要安全连接或客户端未通过身份验证。服
我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题
我有一个 Tomcat 服务器和一个 Glassfish4 服务器。我的 Servlet 在 Tomcat 服务器上启动得很好,但在 Glassfish4 服务器上给我一个“HTTP Status 4
我在 vmware 上创建了一个 ubuntu 服务器。我用它作为文件服务器。如果我通过托管虚拟机的计算机进行连接,则可以访问它。我无法从同一网络上的其他计算机执行此操作。提前致谢! 最佳答案 首先确
如何重启 Rails 服务器?我从 开始 rails server -d 所以服务器是分离的 我知道的唯一方法就是去做ps 辅助 | grep rails 并 kill -9关于过程#但是像这样杀死进
我实际上正在尝试找到编写一个简单的 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的服务器。我只关心XMPP的核心功能(状态、消息传递、群组消息传递)。目前还在学习 XMPP 协议(proto
我实际上正在尝试找到编写简单 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的方法。我只关心 XMPP 的核心功能(统计、消息、组消息)。目前也在学习 XMPP 协议(protocol),所以
我们正在尝试从 Java JAX-RS 适配器访问 SOAP 1.1 Web 服务。 我们正在使用从 WSDL 生成的 SOAP 客户端。 但是当解码 SOAP 故障时,我们得到以下异常: ... C
目前,我和许多其他人正在多个平台(Windows、OS X 和可能的 Linux)上使用 Python HTTP 服务器。我们正在使用 Python HTTP 服务器来测试 JavaScript 游戏
我有一个连续运行的服务器程序(C#/.NET 2.0 on Linux with mono),我想从 PHP 脚本连接到它以在网站上显示状态信息。 目的是创建一个(某种)实时浏览器游戏(无 Flash
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
我们刚刚将测试 Web 服务器从 Server 2008 升级到 Server 2012 R2。我们有一个部署我们网站的批处理脚本。当它将站点推送到服务器时,它现在失败了。奇怪的是,我可以使用相同的发
建议一些加载SpagoBI服务器的方法,我尝试了所有方法来解析spagobi服务器。在 Catalina 中,错误是 - * SEVERE: Unable to process Jar entry [
当我们点击应用程序服务器(apache tomcat)时,它会创建一个线程来处理我们的请求并与 tomcat 连接,建立连接,tomcat 创建另一个线程来处理请求并将其传递给连接,连接线程将其传递给
我是一名优秀的程序员,十分优秀!