Java 创意可以';如果项目使用maven,则无法在自定义测试源根目录下找到文件

Java 创意可以';如果项目使用maven,则无法在自定义测试源根目录下找到文件,java,maven,intellij-idea,Java,Maven,Intellij Idea,在IDEA中,我有一个由maven管理的项目。我在“src”下为集成测试创建了一个名为“intg”的自定义目录: 在我的POM.xml中,我添加了: <build> <plugins> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version>

在IDEA中,我有一个由maven管理的项目。我在“src”下为集成测试创建了一个名为“intg”的自定义目录:

在我的POM.xml中,我添加了:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.basedir}/target/test-classes</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.basedir}/src/intg/resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
不幸的是,测试失败了。如果我将“test data.txt”移动到“src/test/resources”,那么它将通过

我不确定哪里出了问题以及如何解决。它折磨了我一整天,请帮帮我~

试试看:

<build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>add-resource</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>add-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${project.basedir}/src/intg/resources</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>

org.codehaus.mojo
构建助手maven插件
1.8
添加资源
产生资源
添加资源
${project.basedir}/src/intg/resources

然后调用“生成资源并更新文件夹”

,这是您应该坚持的第一步。但是如果你坚持按自己的方式去做。以下是您可以做到的:

1。更新您的pom.xml

src/intg/java
标记为源代码目录

   <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <includes><include>**/src/intg/java/**</include></includes>
        </configuration>
      </plugin>
    </plugins>
  <build>
    <!--
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <finalName>${artifactId}-${version}</finalName>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/intg/resources</directory>
      </resource>
    </resources>
    <!--testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources-->
  </build>
2。设置您的创意项目

  • 右键单击
    src/intg/java
    将目录标记为源根目录
  • 右键单击
    src/intg/resources
    将目录标记为源根目录

就这样,你们都准备好了。Maven和Idea Junit测试都应该编译并运行。

我已经解释了Idea如何在中处理资源。您的问题可能是由以下原因引起的。
   <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <includes><include>**/src/intg/java/**</include></includes>
        </configuration>
      </plugin>
    </plugins>
  <build>
    <!--
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <finalName>${artifactId}-${version}</finalName>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/intg/resources</directory>
      </resource>
    </resources>
    <!--testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources-->
  </build>