2017-03-03 66 views
3

项目设置为共享来自其他模块中某个模块的资源。在Intellij中运行测试时,它们会通过,但是在命令行上找不到资源并引发此异常:从CLI测试失败,传入IDE - 加载资源

{workspacePath} /projectDir/moduleWithResources/build/libs/module-with-resources.jar!/myJsonFile。 JSON(没有这样的文件或目录)

当从IDE的路径,资源是跑: {workspacePath}/PROJECTDIR/moduleWithResources /编译/班/测试/

为什么会路径是从IDE不同vs CLI?该项目有多个模块,相关资源位于src/main/resources/*中。要在其他模块提供的资源,我已经添加了这个任务的gradle:

task copyResources(type: Copy) { 
    from "${projectDir}/src/main/resources" 
    into "${buildDir}/classes/main" 
} 
processResources.dependsOn copyResources 

我的目标是能够将此模块添加到其他模块为“编制项目()”的依赖和访问的资源。

任何帮助将是伟大的!似乎这不是一个gradle支持得很好的设置。

回答

2

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

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

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

希望这有助于(我有同样的问题,但不记得究竟是如何解决这个问题)。