Maven 测试资源在 target 中为空白
Maven test resources are blank in target
我正在做一个有一些测试资源的 Maven 项目;这些在 <build>
中指定如下:
<testResource>
<filtering>true</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.csv</include>
<include>**/*.zip</include>
<include>**/*.xls</include>
<include>**/*.xlsx</include>
<include>**/*.jpg</include>
<include>**/*.pdf</include>
</includes>
</testResource>
当测试 运行 时,所有匹配这些扩展名的文件都从 src/test/resources
复制到 /target/test-classes
以用于测试。
问题是,PDF 文件是在空白处复制的。所以,文件名就在那里;一个有效的 PDF 就在它的位置,只是完全空白。没有内容,但它必须包含所有必要的 header 信息,因为它确实作为有效的 PDF 文件打开。
我不明白这些空白文件是从哪里来的。
例子
- 原文件-https://github.com/aembleton/files/blob/master/original.pdf
- 空白 - https://github.com/aembleton/files/blob/master/blank.pdf
我尝试过的事情
mvn clean
- 在命令行和 IntelliJ 中尝试 运行ning 测试
- 尝试将文件复制到其他子目录和
src/test/resources
的顶部。文件已复制到新位置,但仍为空白。
- 将 PDF 移至
src/main/resources
。 POM 也设置为在此目录中包含资源的 PDF。 PDF 再次被复制到空白处,但是 target/classes
- 重新启动
环境
- Ubuntu 20.04 5.4.0-31 内核
- Ext4 文件系统
- OpenJDK 1.8.0_252
- Apache Maven 3.6.3
有人知道为什么会发生这种情况吗?
尝试做这样的事情:
<testResource>
<filtering>true</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.csv</include>
</includes>
</testResource>
<testResource>
<filtering>false</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*.pdf</include>
<include>**/*.jpg</include>
<include>**/*.zip</include>
<include>**/*.xls</include>
<include>**/*.xlsx</include>
</includes>
</testResource>
解释:
过滤可能会损坏 PDF。
过滤通过用其他值替换特定的字符串标记来工作。
解决方案是从 PDF 中排除过滤。
我正在做一个有一些测试资源的 Maven 项目;这些在 <build>
中指定如下:
<testResource>
<filtering>true</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.csv</include>
<include>**/*.zip</include>
<include>**/*.xls</include>
<include>**/*.xlsx</include>
<include>**/*.jpg</include>
<include>**/*.pdf</include>
</includes>
</testResource>
当测试 运行 时,所有匹配这些扩展名的文件都从 src/test/resources
复制到 /target/test-classes
以用于测试。
问题是,PDF 文件是在空白处复制的。所以,文件名就在那里;一个有效的 PDF 就在它的位置,只是完全空白。没有内容,但它必须包含所有必要的 header 信息,因为它确实作为有效的 PDF 文件打开。
我不明白这些空白文件是从哪里来的。
例子
- 原文件-https://github.com/aembleton/files/blob/master/original.pdf
- 空白 - https://github.com/aembleton/files/blob/master/blank.pdf
我尝试过的事情
mvn clean
- 在命令行和 IntelliJ 中尝试 运行ning 测试
- 尝试将文件复制到其他子目录和
src/test/resources
的顶部。文件已复制到新位置,但仍为空白。 - 将 PDF 移至
src/main/resources
。 POM 也设置为在此目录中包含资源的 PDF。 PDF 再次被复制到空白处,但是target/classes
- 重新启动
环境
- Ubuntu 20.04 5.4.0-31 内核
- Ext4 文件系统
- OpenJDK 1.8.0_252
- Apache Maven 3.6.3
有人知道为什么会发生这种情况吗?
尝试做这样的事情:
<testResource>
<filtering>true</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.csv</include>
</includes>
</testResource>
<testResource>
<filtering>false</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*.pdf</include>
<include>**/*.jpg</include>
<include>**/*.zip</include>
<include>**/*.xls</include>
<include>**/*.xlsx</include>
</includes>
</testResource>
解释:
过滤可能会损坏 PDF。 过滤通过用其他值替换特定的字符串标记来工作。 解决方案是从 PDF 中排除过滤。