我具有被用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"
}
}
}
我試圖enfore表示在兒童項目源兼容性,但似乎沒有任何效果。
更新:
我已創建多模塊項目的gradle的一個例子使用Java 6子項目中的一個和另一個的java 8.我已經使用org.gradle.java.home
屬性在gradle.properties
爲每個子項目爲每個項目設置Java主頁。這裏是github repo。
項目中的子項目包含使用API從Java 8每一個類,用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。
由於提前,
感謝我想會給你反饋 –
我已經加入到我的subroject gradle.properties但似乎不工作org.gradle.java.home = /圖書館/的Java/JavaVirtualMachines/1.6.0 .jdk/Contents/Home –
您是否通過註釋'repositories'後的項目並在root'gradle.properties'文件中聲明JAVA版本來清除頂層'build.gradle'? – Nathan