项目设置为在其他模块中共享一个模块的资源。在 Intellij 中运行测试时,它们通过了,但是在命令行上找不到资源并抛出此异常:
{workspacePath}/projectDir/moduleWithResources/build/libs/module-with-resources.jar!/myJsonFile.json(没有那个文件或目录)
从 IDE 运行时,资源路径为: {工作空间路径}/projectDir/moduleWithResources/build/classes/test/
为什么路径与 IDE 和 CLI 不同?项目有多个模块,涉及到的资源位于src/main/resources/*。为了使资源在其他模块中可用,我添加了这个 gradle 任务:
task copyResources(type: Copy) {
from "${projectDir}/src/main/resources"
into "${buildDir}/classes/main"
}
processResources.dependsOn copyResources
我的目标是能够将此模块作为“编译项目()”依赖项添加到其他模块并访问资源。
任何帮助都会很棒!似乎这不是 gradle 目前支持得很好的设置。
最佳答案
Why would the paths be different from IDE vs CLI?
因为 IDE 运行分解代码。 尝试通过类加载器加载资源
MyCLass.class.getClassLoader().getResourceAsStream(name)
希望这对您有所帮助(我遇到了同样的问题,但不记得具体是如何解决的)。
关于java - CLI 测试失败,传入 IDE - 加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42588953/