项目设置为从其他模块中的一个模块共享资源。在Intellij中运行测试时,它们会通过,但是在命令行上找不到资源并抛出此异常:
{workspacePath} /projectDir/moduleWithResources/build/libs/module-with-resources.jar!/myJsonFile.json(没有这样的文件或目录)
从IDE运行时,资源的路径是: {workspacePath} / 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目前非常支持的设置。
答案 0 :(得分:2)
为什么路径与IDE与CLI不同?
因为IDE运行爆炸代码。 尝试按类加载器加载资源
MyCLass.class.getClassLoader().getResourceAsStream(name)
希望这会有所帮助(我遇到了同样的问题,但不记得如何解决它)。