2015-09-06 385 views
1

我需要在我的gradle項目中指定javac的路徑。我可以通過添加以下到我的build.gradle文件做到這一點:在用戶的gradle.properties中設置JDK主目錄(javac路徑)

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中包含項目之外的任何地方嗎?

回答

4

在你gradle.properties:

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

在你的build.gradle

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

感謝(注意在Java運行時,java.home指向JDK中的$JAVA_HOME/jre文件夾這是一個低於在JAVA_HOME環境變量指向。)!這樣可行。儘管最好不要在'build.gradle'中配置這個配置。 – emjay

2

使用相對路徑 「java.home」 已經爲我們帶來。不夠優雅,但這並不需要其他設置。我們之所以首先需要這個功能,是因爲我們使用的JDK是工作副本的一部分,而不是預先安裝Jenkins從服務器。我們在slave上沒有javac/JDK,只有JRE來運行Jenkins slave。我們在工作副本中的gradlew指向它旁邊的JDK

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