Jos*_*osh 20 java build gradle
我正在使用Gradle的Application插件为独立的Java应用程序生成安装.我有一个配置文件,我需要放在类路径上,但我似乎无法让它在sh/bat文件中正确生成类路径.此配置文件需要位于jar外部.
conf文件位于目录中,/src/dist/conf/因此当我运行installApp它时,将它安装在这样的conf目录下$APP_HOME/conf.
我尝试将此目录添加到claspath,如下所示:
startScripts.classpath.add(files('$APP_HOME/conf'))
Run Code Online (Sandbox Code Playgroud)
但是当我查看sh/bat文件中的类路径时,它会添加一个如下所示的条目:
$APP_HOME/lib/conf
Run Code Online (Sandbox Code Playgroud)
如何告诉gradle删除lib此条目的部分?
neh*_*aev 15
这个问题的另一个解决方法(GRADLE-2333)由Alexandr Fadeev 在这里提出.
这是(有点修改)Alexandr的解决方案,在Gradle-1.6上解决了我的问题:
startScripts {
classpath += files('src/dist/XxxAPlaceHolderForAConfigxxX')
doLast {
def windowsScriptFile = file getWindowsScript()
def unixScriptFile = file getUnixScript()
windowsScriptFile.text = windowsScriptFile.text.replace('%APP_HOME%\\lib\\XxxAPlaceHolderForAConfigxxX', '%APP_HOME%\\config')
unixScriptFile.text = unixScriptFile.text.replace('$APP_HOME/lib/XxxAPlaceHolderForAConfigxxX', '$APP_HOME/config')
}
}
Run Code Online (Sandbox Code Playgroud)
它比Josh的解决方案有点丑,但它允许您保留原始问题中提到的确切目录布局(/ src/dist/conf和$ APP_HOME/conf).
在我看来,我想做的事情不应该那么不寻常,但作为一种解决方法,我可以让目录dist允许src/dist/lib/conf将conf目录放置在lib目录中以及 gradle 生成的类路径中sh/bat 文件正确。
如果有人有更好的答案,我会接受另一个答案。
| 归档时间: |
|
| 查看次数: |
15971 次 |
| 最近记录: |