gpt4 book ai didi

java - 如何使用 Gradle 应用程序插件传递对分发主目录的引用?

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:46 25 4
gpt4 key购买 nike

我正在使用 Gradle 应用程序插件,我想创建包含应用程序主文件夹内的 conf 目录的分发版。这个目录应该包含几个配置文件。例如java.util.logging 属性等。为了指向 JUL 我的配置文件,我应该传递 jvm 属性 -Djava.util.logging.config=... 在这里我需要对应用程序安装目录的引用。似乎脚本将此路径设置为 APP_HOME 变量。但有一个问题:我无法将类似 $APP_HOME 的内容传递给 defaultJvmOpts 属性,因为有两种脚本(win 和 nix),而且美元符号无条件转义。

那么,有没有办法将对应用程序主目录的引用作为虚拟机参数传递?

最佳答案

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: https://github.com/ratpack/ratpack/blob/master/ratpack-gradle/src/main/groovy/ratpack/gradle/RatpackPlugin.groovy#L93

感谢他的帮助。

因此,我在 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"')
}
}

而且有效!希望以后能将这样的功能添加到插件中。

关于java - 如何使用 Gradle 应用程序插件传递对分发主目录的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25227198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com