java - Eclipse - 在项目构建过程中自动修改 keystore 文件

标签 java eclipse maven build keystore

我正在 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/

相关文章:

java - 如何在达到限制时通过删除最旧的条目来限制 map 的最大大小

java - 从 Jenkins 中的 Jacoco 覆盖范围中排除包

java - Maven jar 依赖项显示在 `Maven Dependencies` View 之外

java - xml-apis JAR 文件是否必要?

java - 在Java中向ListOfMap添加元素时出错

java - Java TCP文件传输仅在第一次尝试时完成

php - 通过 PHP 源代码中的引用检测调用时间传递的正则表达式

eclipse - javax.persistence jar 未加载到 tomcat 中

java - 将 Artifact 从本地 Gradle Artifact 存储库部署到 JCenter/MavenCentral

java - Travis CI 构建在 master 上运行部署阶段,即使不满足标记条件