Eclipse - 在项目构建期间自动修改密钥库文件

Eclipse - Keystore file auto-modified during project building

我正在 Eclipse 2019-06 (4.12.0) 中开发 Maven 项目。我向 src/main/resources 添加了一个密钥库文件。 Eclipse构建项目时,keystore文件被复制到target/classes.

有趣的是,复制的文件比原始文件大,而且不再是有效的密钥库文件。我用 Java 代码和 KeyStore Explorer 应用程序对此进行了测试。如果我删除复制的文件,更改原始文件的名称,然后重建项目,那么复制的文件将具有新名称,因此 Eclipse 肯定会从 src/main/resources 复制密钥库文件,但由于某种原因更改了其结构.

我查看了复制的文件,原始文件以 FE ED FE ED ... 开头,而复制的文件以四个 EF BF BD 序列开头。后者是Unicode replacement character的UTF-8编码。 Eclipse 可能将密钥库文件视为文本文件并更改其编码(工作区默认为 UTF-8),但为什么呢?

如何让 Eclipse 在将密钥库文件复制到 target 时停止更改它?

在 POM 文件中,密钥库文件必须从资源过滤中排除:

<build>
    ...
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <nonFilteredFileExtensions>
                    <nonFilteredFileExtension>keystore</nonFilteredFileExtension>
                </nonFilteredFileExtensions>
            </configuration>
        </plugin>
    </plugins>
</build>