我正在使用Gradle应用程序插件,我想在app主文件夹中创建包含 conf 目录的发行版。此目录应包含多个配置文件。例如 java.util.logging 属性等。要指向JUL我的配置文件,我应该传递jvm属性-Djava.util.logging.config=...
,在这里我需要一个对app安装目录的引用。似乎脚本将此路径设置为 APP_HOME 变量。但是有一个问题:我无法将{em> defaultJvmOpts 属性传递给$APP_HOME
,因为有两种脚本(win和nix),而且美元符号无条件地被转义。
那么,有没有办法将对app主目录的引用作为虚拟机参数传递?
答案 0 :(得分:1)
Luke Daley在Gradle论坛上发布了问题的答案: http://forums.gradle.org/gradle/topics/how_to_pass_a_reference_to_distribution_home_directory_using_application_plugin:
您必须扩充启动脚本。
感谢他的帮助。
因此,我将以下代码添加到build.gradle
:
CreateStartScripts startScripts = project.startScripts
startScripts.with {
doLast {
unixScript.text = unixScript.text.replaceFirst('(?<=DEFAULT_JVM_OPTS=)((\'|\")(.*)(\'|"))(?=\n)',
'\'$3 "-Dtcproxy.config.url=file:\\$APP_HOME/conf/proxy.properties"\'')
windowsScript.text = windowsScript.text.replaceFirst('(?<=DEFAULT_JVM_OPTS=)(.*)(?=\r\n)',
'$1 "-Dtcproxy.config.url=file:%~dp0../conf/proxy.properties"')
}
}
它有效!希望以后这些功能会被添加到插件中。