2015-06-14 7 views
1

Я думал, что это будет очень простая вещь. До сих пор, однако я не могу доступ строка для java.home моей Gradle Иовом, официальное название:Gradle - Не удается показать: org.gradle.java.home

Видимо, я могу установить это значение с Файл настроек gradle.properties. Я сделал это, и выход градулы подтверждает это.

За все, что ни одно из этих заявлений печатных работ ...

  • печати "org.gradle.java.home = $ org.gradle.java.home"
  • печати «org.gradle .java.home = "+ project.properties [ 'org.gradle.java.home']
  • печати "org.gradle.java.home = $ gradle.java.home"
  • печати" $ {проект. имущество ('org.gradle.java.home')} "

Если вы вернетесь на вопрос this, я бы подумал, что один из вариантов попытается дать результат.

Как получить доступ к свойствам уровня системы?

ответ

1

только два варианта могут работать:

  • print "org.gradle.java.home = "+ project.properties['org.gradle.java.home']
  • print "${project.property('org.gradle.java.home')}"

и второй не получится, так как нет никакой проверки, если такое свойство существует. Gradle выдает исключение при доступе к несуществующему свойству.

Последние два не будет работать, потому что нет никакой собственности орга и Gradle объектов не Java свойства - больше объяснений можно найти here - вы должны понять, как строка интерполяция работает с заводным.

И, наконец, эти свойства используются для pass аргументы для градации. Таким образом, следующие будут работать:

print "org.gradle.java.home = "+ 

project.properties [ 'org.gradle.java.home']

бег с:

gradle -Dorg.gradle.java.home=random_dir 
+0

Фраза: ** печать "org.gradle.java.home =" + project.properties [ 'org.gradle.java.home'] ** дает: "org.gradle.java.home = null: help"; в то время как другие варианты не работают или дают _ «FAILURE: Build failed with exception.» _ results. – will

+0

Я заключу, что, хотя можно установить свойство _java.home_, оно не читается. Есть некоторые заметки об этом, которые поддерживаются только демоном Gradle. Сказанный демон сообщает, что новая JVM развивается, и я считаю, что свойство _java.home_ не является транзитивным. Определенно непоследовательно, на мой взгляд. Возможно, релиз позже 2.4 решит все. – will

+0

Да, потому что только с этой фразой вы правильно относитесь к этому свойству. Вам нужно * передать * свойство, чтобы прочитать его. Как я писал в * run с: *. – Opal

0

С некоторыми проб и ошибок много- , Я обнаружил, что можно напечатать свойство java.home на Windows с Gradle 2.4; когда ...

  • Используйте ваши gradle.properties файл, например,

Например

compile.options.fork = true 
    org.gradle.daemon  = true 
    org.gradle.java.home = b:/lang/java/jdk/v1.8u45 

Те же настройки в GRADLE_OPTS не имели никакого эффекта. Команда печати используется, это:

print "org.gradle.java.home = "+ "${project.property('org.gradle.java.home')}" 

Я считаю, что compile.options.fork также требуется. Это не имело никакого эффекта, когда я использовал GRADLE_OPTS. Хотя сообщение Gradle, использующее fork, вполне понятно по этому вопросу.

Смотри также: - https://docs.gradle.org/2.4/userguide/gradle_daemon.html

Смежные вопросы