我正在 Eclipse 2019-06 (4.12.0) 中开发 Maven 项目。我向 src/main/resources 添加了一个 keystore 文件。当 Eclipse 构建项目时, keystore 文件将复制到 target/classes
。
有趣的是,复制的文件比原始文件大,并且它不再是有效的 keystore 文件。我使用 Java 代码和 KeyStore Explorer 应用程序对此进行了测试。如果我删除复制的文件,更改原始文件的名称,然后重建项目,那么复制的文件将具有新名称,因此 Eclipse 肯定会从 src/main/resources 复制 keystore 文件,但由于某种原因改变了其结构。
我查看了复制的文件,原始文件以 FE ED FE ED ...
开头,而复制的文件则以四个 EF BF BD
序列开头。后者是Unicode replacement character的UTF-8编码。 Eclipse 可能会将 keystore 文件视为文本文件并更改其编码(工作区默认为 UTF-8),但为什么呢?
如何让 Eclipse 在将 keystore 文件复制到目标
时停止更改它?
最佳答案
在POM文件中,必须将keystore文件排除在资源过滤之外:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>keystore</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build>
关于java - Eclipse - 在项目构建过程中自动修改 keystore 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58432315/