【发布时间】:2016-02-09 16:47:19
【问题描述】:
我有使用 java 7 进行构建的多项目 gradle 配置。我正在添加一个必须使用 Java 6 构建的新项目。
从这个Q&A,我尝试了提出的不同解决方案,但都没有奏效。
这是顶层 build.gradle:
allprojects {
apply plugin: 'idea'
apply plugin: 'java'
repositories {
maven { url 'http://repo1.maven.org/maven2' }
mavenLocal()
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:-options"
}
}
}
我曾尝试在子项目中确保源代码兼容性,但这似乎没有效果。
更新:
我创建了一个多模块 gradle 项目的示例,其中一个子项目使用 Java 6,另一个子项目使用 Java 8。我在 gradle.properties 中使用了 org.gradle.java.home 属性来设置每个子项目他们每个人的 Java 主页。这是github repo。
子项目包含使用 Java 8 中的 APIs 的每个类,使用 java 6 的子项目预计会失败,但构建运行成功。
这是父 build.gradle 文件:
group 'com.test'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
父settings.gradle的内容:
rootProject.name = 'Parent'
include 'child2Java6'
include 'child1Java8'
Java 6 子项目的 build.gradle 内容:
group 'com.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6
repositories {
mavenCentral()
}
compileJava.doFirst {
println "source compatibility " + sourceCompatibility
println "target compatibility " + targetCompatibility
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Java 6 子项目的 gradle.properties 的内容:
org.gradle.java.home=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
java 8 子项目的 build.gradle:
group 'com.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
}
compileJava.doFirst {
println "source compatibility " + sourceCompatibility
println "target compatibility " + targetCompatibility
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
这是 gradle.properties :
org.gradle.java.home=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
我正在打印sourceCompatibility 和targetCompatibility,它们对每个项目都有很好的价值。
我正在使用gradle clean build 进行构建。
gradle -v 输出这个:
------------------------------------------------------------
Gradle 2.9
------------------------------------------------------------
Build time: 2015-11-17 07:02:17 UTC
Build number: none
Revision: b463d7980c40d44c4657dc80025275b84a29e31f
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_65 (Oracle Corporation 25.65-b01)
OS: Mac OS X 10.11.1 x86_64
我使用 Java 8 作为我的默认 Jdk。
提前致谢,
【问题讨论】:
标签: java gradle build.gradle