Maven的(神火):从SRC / test / java下副本的测试资源
-
26-09-2019 - |
题
Maven的神火(测试)的插件在mvn test-compile
到src/test/resources
target/test-classes
复制文件。它编译在.java
src/test/java
,和编译.class
文件复制到target/test-classes
。
不过,这并不从src/test/java
复制的资源,它更方便,能够把测试资源在同一个目录,因为它们是资源,为.java
类,要比在src/test/resources
并行的层次结构。
时有可能得到Maven的资源从src/test/java
复制?
解决方案
在资源复制所有由Maven的资源插件完成的,如果你读的文档上,您将看到如何从添加的src / test / java下资源的复制。
请参阅 http://maven.apache.org/plugins/maven-resources-插件/ testResources-mojo.html ,在测试资源目标,其被包括在所述默认的生命周期。
和然后看到 http://maven.apache.org/pom.html 和寻<testResources>
。
其他提示
bmargulies答曰,但让我填写一些细节。
<testresources>
可以被添加到该项目的POM的<build>
节点,如下所示:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
</testResource>
</testResources>
这副本一切src/test/java
- 包括.java
源代码,这是我们不想要的。
它还(如bmargulies仅在暗示)覆盖并取代在标准父POM默认<testResources>
设置,从所有其它POM继承(除非该继承改变)。标准的父副本src/test/resources
,所以通过重写的是,我们没有得到复制像往常一样,这是我们不想要的。 (特别是,我的整个这样做的理由是使用unitils,这要复制的文件unitils.properties
- 这就是(对我来说,反正)在src/test/resources
因此,我们重新添加src/test/resources
:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
,在顺序拷贝列出的,使得对于同时存在于两个/src/test/java
文件(和子目录)和/src/test/resources
(和子目录),则src/test/resources
版本是一个端部向上在test-classes
。
现在,我们只需要的不的复制.java
文件:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
只有它为我工作,当我把我的测试配置为src/test/resources
文件夹(源文件src/test/java
的模拟)的方式。从该文件夹的文件复制到这是在测试执行过程中的类路径中target/test-classes
文件夹。我不知道为什么,但接下来的配置并没有为我工作:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
时有可能得到Maven来复制 从SRC /测试/ JAVA资源?
是,这是很容易与 antrun插件实现