在用户的gradle.properties中设置JDK home(javac路径)

时间:2015-09-06 09:06:20

标签: gradle javac

我需要在gradle项目中指定javac的路径。我可以通过在build.gradle文件中添加以下内容来完成此操作:

options.forkOptions.executable = '/home/mj/lib/jdk1.7.0_80/bin/javac'

问题是这个文件在我们的存储库中共享,我不想让设置被推到那里。我尝试将其放在我的本地gradle.properties文件中,但它没有用。同时设置gradle.java.home不会影响这一点。我想这是因为gradle使用gradle.java.home代表java而不代表javac,对吧?我也(绝望地)尝试设置一个gradle.jdk.home(毫不奇怪)也没有工作!

build.gradle中是否包含项目外的任何地方?

2 个答案:

答案 0 :(得分:5)

在你的gradle.properties中:

javacPath=/home/mj/lib/jdk1.7.0_80/bin/javac

在你的build.gradle中

options.forkOptions.executable = project.property('javacPath')

答案 1 :(得分:2)

使用相对于“java.home”的路径对我们有用。不优雅,但这不需要另外设置。我们首先需要这个的原因是我们使用JDK构建,它是工作副本的一部分,而不是预装Jenkins slave。我们在slave上没有javac / JDK,只是运行Jenkins slave的JRE。我们工作副本中的gradlew指向它旁边的JDK

compileJava {
  options.fork = true
  options.forkOptions.executable = "${System.properties['java.home']}/../bin/javac"
}

(注意:在Java运行时,java.home指向JDK中的$JAVA_HOME/jre文件夹。这是JAVA_HOME环境变量指向的下面的文件夹。)