我正在使用Gradle应用程序插件,我想创建包含app home文件夹中的conf目录的发行版.此目录应包含多个配置文件.例如java.util.logging属性等.要指向JUL我的配置文件,我应该传递jvm属性-Djava.util.logging.config = …这里我需要一个对app安装目录的引用.似乎脚本将此路径设置为APP_HOME变量.但是有一个问题:我无法传递defaultJvmOpts属性,比如$APP_HOME,因为有两种脚本(win和nix),而且美元符号无条件地被转义.
那么,有没有办法将app home目录的引用作为虚拟机参数传递?
解决方法:
Luke Daley在Gradle论坛上发布了一个问题的答案:
http://forums.gradle.org/gradle/topics/how_to_pass_a_reference_to_distribution_home_directory_using_application_plugin:
You’ll have to augment the start scripts.
There’s an example of this here: 07001
感谢他的帮助.
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"')
}
}