gpt4 book ai didi

java - 如何设置 gradle distZip 任务以将资源正确放入子目录和类路径?

转载 作者:行者123 更新时间:2023-11-29 04:43:43 26 4
gpt4 key购买 nike

我有这些 build.gradle 文件:

dependencies {
runtime files('src/main/resources')
runtime files('src/main/resources/cfg')
runtime files('src/main/resources/sql')
}

jar {
exclude 'cfg/*'
exclude 'cfg/'
exclude 'sql/*'
exclude 'sql/'
}

还有这个

dependencies {
runtime files('src/main/resources')
runtime files('src/main/resources/cfg')
runtime files('src/main/resources/fxml')
runtime files('src/main/resources/icons')
}

jar {
exclude 'cfg/*'
exclude 'cfg/'
exclude 'icons/*'
exclude 'icons/'
exclude 'fxml/*'
exclude 'fxml/'
}

startScripts {
doLast {
def winScriptFile = file getWindowsScript()
def winFileText = winScriptFile.text
winFileText = winFileText.replaceAll 'set CLASSPATH=.*', 'set CLASSPATH=%APP_HOME%\\\\lib\\\\\\*;%APP_HOME%\\\\lib\\\\cfg;%APP_HOME%\\\\lib\\\\fxml;%APP_HOME%\\\\lib\\\\icons;%APP_HOME%\\\\lib\\\\sql'
}
}

我可以从 projectName.jar 文件中排除资源目录及其文件,但我无法从 distZip/distTar 任务创建的/lib 目录的子目录中排除文件。

我想在 zip/tar 中有这个布局

projectName/
|
|-lib/
| |
| |-cfg/
| | |-*.*
| |
| |-fxml/
| | |-*.fxml
| |
| |-icons/
| | |-*.ico
| |
| |-sql/
| | |-*.sql
| |
| |-*.jar
|
|-bin/
|
|-projectName.bat

其中子目录中的所有资源都没有包含在lib目录中,子目录设置在projectName.bat中的CLASSPATH变量中,这样应用程序能够加载所有资源。

最佳答案

我能够弄清楚,我必须提供这样的资源,它将子目录放在 lib 目录中

dependencies {
runtime files('src/main/resources')
}

这个变化:

-    winFileText = winFileText.replaceAll 'set CLASSPATH=.*', 'set CLASSPATH=%APP_HOME%\\\\lib\\\\\\*;%APP_HOME%\\\\lib\\\\cfg;%APP_HOME%\\\\lib\\\\fxml;%APP_HOME%\\\\lib\\\\icons;%APP_HOME%\\\\lib\\\\sql'
+ winFileText = winFileText.replaceAll 'set CLASSPATH=.*', 'set CLASSPATH=%APP_HOME%\\\\lib\\\\\\*;%APP_HOME%\\\\lib;%APP_HOME%\\\\lib\\\\cfg;APP_HOME%\\\\lib\\\\fxml;APP_HOME%\\\\lib\\\\icons;APP_HOME%\\\\lib\\\\sql'

缺少:%APP_HOME%\\\\lib;它是必需的,因为在源代码中引用了 fxml 资源:

getClass().getResource("/fxml/somelayout.fxml")

它在 lib/ 目录的 CLASSPATH 上寻找资源。这个不见了。

关于java - 如何设置 gradle distZip 任务以将资源正确放入子目录和类路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38150758/

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