Сценарии запуска Gradle env

В задаче запуска gradle у меня есть информация о пути к библиотеке:

run {
    systemProperty "java.library.path", "lib/native"
}

Можно ли добавить ту же переменную в какую-то задачу Gradle, которая будет включать переменную в скрипты bin, пока мне нужно поместить их вручную, но я хотел бы автоматизировать это с помощью Gradle:

CLASSPATH=$APP_HOME/lib/***.jar:$APP_HOME/lib/***.jar: ...
>>> LD_LIBRARY_PATH=$APP_HOME/lib

person Community    schedule 11.10.2015    source источник
comment
Если ваши скрипты не генерируются автоматически, вы можете установить в нем заполнитель и создать пользовательскую задачу, которая может выполняться как doLast или отдельная, которая заменит заполнители в вашей окончательной версии скрипта на правильные значения.   -  person Stanislav    schedule 11.10.2015
comment
Это одно из возможных решений, но жаль, что по умолчанию его нет в Gradle.   -  person    schedule 16.11.2015


Ответы (1)


Вы можете использовать некоторый текст, например MY_APP_HOME, для определения java.library.path в аргументах JVM:

applicationDefaultJvmArgs = ['-Djava.library.path=MY_APP_HOMElib/native']

А затем подставить его на переменную start scripts APP_HOME в каждом скрипте:

startScripts {
    doLast {
        unixScript.text = unixScript.text.replace('MY_APP_HOME', '\$APP_HOME/')
        windowsScript.text = windowsScript.text.replace('MY_APP_HOME', '%APP_HOME%\\')
    }
}
person Eduardo    schedule 15.01.2020