Maven测试资源在目标中为空白

问题描述 投票:0回答:1

我正在一个具有一些测试资源的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文件就位,完全空白。没有内容,但是它必须具有所有必要的标头信息,因为它确实会作为有效的PDF文件打开。

我不知道从哪里获得这些空白文件。

示例

我尝试做的事情

  • mvn clean
  • 尝试在命令行和IntelliJ中运行测试
  • 尝试将文件复制到其他子目录和src/test/resources的顶部。文件被复制到新位置,但仍为空白。
  • 将PDF移至src/main/resources。对于资源,POM设置为也将PDF包含在此目录中。 PDF再次复制为空白,但复制到target/classes
  • 重新启动

环境

  • 带有5.4.0-31内核的Ubuntu 20.04
  • Ext4文件系统
  • OpenJDK 1.8.0_252
  • Apache Maven 3.6.3

没有人知道为什么会发生这种情况吗?

java maven java-8 maven-3
1个回答
0
投票

尝试做这样的事情:

<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中排除过滤。

© www.soinside.com 2019 - 2024. All rights reserved.