5
我的編譯環境是jdk1.8,運行時環境是jdk1.6。 java
gradle插件具有sourceCompatibility
屬性。它對java項目有效。
例如:當sourceCompatibility=1.6
,編譯器會報錯,如果我使用api如Paths
這是從jdk1.7。如何限制kotlin使用上面公佈的java api jdk1.6
但sourceCompatibility
屬性不適用於kotlin項目。我知道它是java
插件的範圍。但是我很奇怪kotlin
gradle的插件是否有類似的屬性。 (jvmTarget
屬性是1.6在默認情況下,但這並沒有阻止我使用jdk1.7 API)
===我的代碼===
科特林代碼:
fun main(args: Array<String>) {
val pp = Paths.get("/tmp")
... ...
}
我想科特林的編譯器報告錯誤,但編譯成功,
父build.gradle
:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0"
}
}
subprojects {
apply plugin: "java"
compileJava.sourceCompatibility=1.6
compileJava.targetCompatibility=1.6
compileJava.options.encoding = 'UTF-8'
// For ubuntu
compileJava.options.bootClasspath = '/usr/lib/jvm/java-6-oracle/jre/lib/rt.jar'
}
孩子科特林項目build.gradle
:
apply plugin: 'application'
apply plugin: 'kotlin'
mainClassName = 'net.cat.ApplictionKt'
version='1.0'
jar {
manifest {
attributes 'Implementation-Title': 'xxxx',
'Implementation-Version': version,
'Main-Class': mainClassName
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.0"
compile "org.jetbrains.kotlin:kotlin-reflect:1.1.0"
... ...
}