Gradle не заполняет файлы переменными gradle.properties - PullRequest
0 голосов
/ 22 марта 2019

На данный момент в моем проекте просто отсутствуют пути, объявленные в gradle.properties:

M_HOME=/home/<USER>/Manager
JAVA_HOME=/opt/jdk1.8.0_191

А в build.gradle у меня есть задача редактирования и перемещения сценария оболочки, которая будет представлена ​​в задаче buildRpm, и скомпилируйте пакет RPM со сценарием, расположенным в ProjectDir/src/main/resources/template

Моя задача для скрипта следующая:

def mHome = project.findProperty('M_HOME')
def javaHome = project.findProperty('JAVA_HOME')

task createScript(type: Copy, dependsOn: build){

    description = "Create a setvar script"

    doLast{
        from 'src/main/resources/template'
        include 'setvar.sh.template'
        expand([
            M_HOME: 'mHome',
            JAVA_HOME: 'javaHome'
        ])
       // into 'out/scripts'
    }
}

И он помещает файл в ProjectDir/out/resources/main/template

тогда в моей задаче сборки для buildRpm следующее (не собираюсь помещать весь код):

task buildRpm(type: Rpm, overwrite: true, dependsOn: build)
    if(mHome == '' )
        throw new GradleException('** Edit the value of your Manager Home in gradle.properties **')
    into(Home){
        addParentDirs = false
        fileMode 0644
        dirMode 0755

        directory("${Home}/${ packageName }")
        directory("${Home}/${ packageName }/lib")
        directory("${Home}/${ packageName }/config")
        directory("${Home}/${ packageName }/bin")
        directory("${Home}/${ packageName }/logs", 0777)
        from('out/resources/main/template/') {
            into "${ packageName }/bin"
            rename 'setvar.sh.template', "setvar.sh"
            fileMode 0755
        }

(packageName и Home объявлены и функционируют) И это ставит сценарий на /opt/ToolDir/bin

Однако скрипт выглядит точно так же, как шаблон (без расширения .template), где обе переменные находятся там и не изменены

M_PATH=${M_HOME}
JAVA_HOME=${JAVA_HOME}

Оператор if, содержащий mHome, выдает исключение, если переменная имеет значение null, поэтому build.gradle читает переменные, и мой вопрос заключается в том, заменяет ли gradle переменные в файлах переменными, объявленными в gradle.properties.

А может, это мои переменные в скрипте оболочки, плохо объявленные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...