Ger*_*wer 20 java groovy gradle
因为我的Java源代码和目标必须是JRE 1.6兼容的,所以我需要设置options.bootClasspath
一个包含1.6版本rt.jar
和的路径jce.jar
.它必须建立在Windows和Unix(Linux/Solaris)上.这样做的正确方法是什么?我现在在我的顶层使用以下方法build.gradle
,它可以工作,但它似乎远非优雅,尤其是依赖于os的分隔符:
或;
:
import org.apache.tools.ant.taskdefs.condition.Os
subprojects {
apply plugin: 'java'
compileJava {
sourceCompatibility = 1.6
targetCompatibility = 1.6
def java6_home = System.getenv("JAVA_HOME_6")
def java6_lib = "C:/localdata/Program Files (x86)/Java/jdk1.6.0_45/jre/lib/"
if (java6_home != null) {
java6_lib = java6_home + "/jre/lib/"
}
def sep = ':'
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
sep = ';'
}
options.bootClasspath = java6_lib + "rt.jar" + sep + java6_lib + "jce.jar"
}
}
Run Code Online (Sandbox Code Playgroud)
Ole*_*hin 26
我使用以下代码(假设JDK6_HOME指向JDK 1.6安装的根目录):
tasks.withType(JavaCompile) {
doFirst {
if (sourceCompatibility == '1.6' && System.env.JDK6_HOME != null) {
options.fork = true
options.bootClasspath = "$System.env.JDK6_HOME/jre/lib/rt.jar"
options.bootClasspath += "$File.pathSeparator$System.env.JDK6_HOME/jre/lib/jsse.jar"
// use the line above as an example to add jce.jar
// and other specific JDK jars
}
}
}
Run Code Online (Sandbox Code Playgroud)
此方法自动检测环境变量的存在,并自动设置bootClasspath
声明sourceCompatibility
为1.6的所有模块.
在options.fork = true
当您使用需要bootClasspath
.
归档时间: |
|
查看次数: |
9012 次 |
最近记录: |