无法从另一个源文件夹读取主资源

时间:2018-10-10 10:15:54

标签: java gradle

我在src/中创建了一个新的源文件夹。目录结构如下:

src/main/java
src/main/resources
src/test/java
src/test/resources
src/integrationTest/java
src/integrationTest/resources

integrationTest中,我创建了一些测试,并根据以下问题设置了配置:Add multiple source test directories for tests

现在,当我运行测试时,main中的一个文件试图从其类路径中读取资源,但会得到一个文件未找到的异常。在运行应用程序期间读取该文件时,该文件运行良好。如何将其添加到集成测试任务的类路径中?我不确定这是否是我应该问的问题。

受影响的代码:MyBatis SqlSession在内部读取提供给它的文件:

Caused by: java.io.FileNotFoundException: class path resource [foo/bar/dao/writer/writer-sql-map.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:406)
    at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:380)
    at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:547)

Gradle文件的一部分:

sourceSets {
    integrationTest {
        java {
            compileClasspath += files(main.java.outputDir) + files(test.java.outputDir)
            runtimeClasspath += files(main.java.outputDir) + files(test.java.outputDir)
            srcDir file('src/integrationTest/java')
        }
    }
}

configurations {
    integrationTestCompile.extendsFrom testCompile
    integrationTestRuntime.extendsFrom testRuntime
}

task integrationTest(type: Test){
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
}

0 个答案:

没有答案