我有一个项目需要使用较旧版本的Findbugs,但我想使用我目前在我的计算机上安装的Gradle版本,这是我的路径。
以下是我使用Java版本和Findbugs进行配置的一部分:
apply plugin: 'findbugs'
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
findbugs {
effort = "max"
ignoreFailures = false
// Only run findbugs on source files
sourceSets = [sourceSets.main]
// File has exclusions for Findbugs
excludeFilter = file("${rootProject.projectDir}/config/findbugs.xml")
toolVersion = '2.0.3'
}
需要使用Java 7兼容版本的FindBugs为Java 7编译目标项目。以下是路径上的Gradle和Java版本:
$ gradle --version
------------------------------------------------------------
Gradle 2.1
------------------------------------------------------------
Build time: 2014-09-08 10:40:39 UTC
Build number: none
Revision: e6cf70745ac11fa943e19294d19a2c527a669a53
Groovy: 2.3.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0 (Oracle Corporation 25.0-b70)
OS: Windows 7 6.1 amd64
如果我尝试运行FindBugs任务,我会得到以下错误输出:
$ gradle :findbugsMain
:Project:compileJava UP-TO-DATE
:Project:processResources UP-TO-DATE
:Project:classes UP-TO-DATE
:Project:findbugsMain FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Project:findbugsMain'.
> The version of FindBugs (2.0.3) inferred from FindBugs classpath is too low to work with currently used Java version (1.8). Please use higher version of
FindBugs. Inspected FindBugs classpath: [findbugs-2.0.3.jar, jcip-annotations-1.0.jar, jsr305-2.0.1.jar, bcel-2.0.1.jar, jFormatString-2.0.1.jar, dom4j-1.6
.1.jar, asm-3.3.jar, asm-commons-3.3.jar, commons-lang-2.6.jar, AppleJavaExtensions-1.4.jar, jaxen-1.1.6.jar, xml-apis-1.0.b2.jar, asm-tree-3.3.jar]
如何配置此项目以适当地运行较旧版本的FindBugs而无需编辑环境变量?如何使用与Gradle当前运行的不同JDK运行FindBugs?
答案 0 :(得分:2)
您无法配置专门用于Findbugs任务的JDK,但您可以通过在gradle.properties文件中设置属性来配置gradle以使用特定的jvm:
org.gradle.java.home
并不是说这个java将用于整个gradle过程,而不仅仅用于Findbugs,但它不需要更改你的环境变量。