从CLI测试失败,传入IDE - 加载资源

时间:2017-03-03 21:45:25

标签: java unit-testing android-studio intellij-idea gradle

项目设置为从其他模块中的一个模块共享资源。在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目前非常支持的设置。

1 个答案:

答案 0 :(得分:2)

  

为什么路径与IDE与CLI不同?

因为IDE运行爆炸代码。 尝试按类加载器加载资源

MyCLass.class.getClassLoader().getResourceAsStream(name)

希望这会有所帮助(我遇到了同样的问题,但不记得如何解决它)。