Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 告诉gradle从src/test/resources而不是src/main/resources中选择persistence.xml_Java_Jpa_Gradle_Persistence.xml - Fatal编程技术网

Java 告诉gradle从src/test/resources而不是src/main/resources中选择persistence.xml

Java 告诉gradle从src/test/resources而不是src/main/resources中选择persistence.xml,java,jpa,gradle,persistence.xml,Java,Jpa,Gradle,Persistence.xml,我正在开发一个Gradle java web项目,以在Wildfly中运行,其结构如下: - src/main/java - src/main/resources \-- META/INF \-- persistence.xml - src/test/java - stc/test/resources \-- META/INF \-- persistence.xml 以及以下build.gradle: apply plugin: 'war' apply plug

我正在开发一个Gradle java web项目,以在Wildfly中运行,其结构如下:

- src/main/java
- src/main/resources
  \-- META/INF
      \-- persistence.xml
- src/test/java
- stc/test/resources
  \-- META/INF
      \-- persistence.xml
以及以下
build.gradle

apply plugin: 'war'
apply plugin: 'eclipse-wtp'

sourceCompatibility = 1.8
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Arch Project', 'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

configurations {
    provided
}

sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}

dependencies {

    /* Java EE 7 API. */
    provided 'javax:javaee-api:7.0'

    /* JUnit for unit testing. */
    testCompile 'junit:junit:4.1.2'

    /* DbUnit - Persitence unit testing. */
    testCompile 'org.dbunit:dbunit:2.5.0'
    testCompile 'org.slf4j:slf4j-simple:1.7.9'

    /* Hibernate. */
    testCompile 'org.hibernate:hibernate-core:4.3.7.Final'

    /* Hibernate provider for JPA. */
    testCompile 'org.hibernate:hibernate-entitymanager:4.3.7.Final'

    /* Hibernate dependency. */
    testCompile 'com.fasterxml:classmate:1.1.0'

    /* PostgreSQL for persistence tests context */
    testCompile 'org.postgresql:postgresql:9.3-1102-jdbc41'
} 
源文件夹
src/test/resources
中的
persistence.xml
文件是我运行测试时希望使用的文件,而不是
src/main/resources
中的另一个文件
我需要它,因为
src/main/resources
中的
persistence.xml
依赖于JavaEE应用服务器中定义的JTA数据源,因此,我相信它不会在本地执行上工作
如何通过命令
gradletest
,配置它以在Eclipse和Gradle内部成功运行测试


提前感谢。

要解决此问题,请按照以下说明操作:

在Eclipse的项目属性Java Build Path->Order and Export中,将测试文件夹置于src文件夹之上


还有另一个问题:

它对你有帮助吗:?Thx@Opal,但没有帮助。如果我使用src/main/resources,那么问题是当我想使用src/test/resources中的
persistence.xml
,以及谈论另一个问题:“你能澄清一下你的意思吗?你的意思是“请也按照这里的指示去做”吗?但无论如何,答案不止一个,你指的是哪一个?我想是因为它的开头和您的一样,但仍然不清楚。如果您将测试文件夹放在src文件夹之上,您的测试将在eclipse中工作。在Eclipse的项目、属性、Java构建路径中单击WithRigth按钮,然后转到TabOrder和Export。在您将src/test/resource移到src/main/resource上方时,将有您的源和资源。因此,Eclipse将首先在测试资源中找到persistence.xml,测试将在Eclipse的IDE中使用test的persistence.xml。