代码之家  ›  专栏  ›  技术社区  ›  User1

在JAR和开发中处理资源文件路径

  •  1
  • User1  · 技术社区  · 15 年前

    我有一个keystore文件,我希望它可以用于我的应用程序中的几个类。我创建了一个.config文件,指出密钥存储文件的名称、密码和其他信息。

    这是一个基于Maven的项目,所以keystore在/src/main/resources中。我构建了一个JAR并将文件移动到JAR中的/resources。我想让.config文件说一些类似“resources/keystore.jks”的话。

    如何解析.config文件,使其:

    1. 在开发中使用/src/main/resources/keystore.jks作为应用程序代码。
    2. 将/src/test/resources/keystore.jks用于测试代码。
    3. 使用jar中的/resources。
    1 回复  |  直到 15 年前
        1
  •  3
  •   Pascal Thivent    15 年前

    这是一个基于Maven的项目,所以keystore在/src/main/resources中。我构建了一个JAR并将文件移动到JAR中的/resources。我想让.config文件说一些类似“resources/keystore.jks”的话。

    你为什么这么做?你不应该移动它。把钥匙放进去 resources/resources/keystore.jks 如果你想在 /resources 在类路径上。

    如何解析.config文件,使其:

    1. 将/src/main/resources/keystore.jks用于 开发中的应用程序代码。
    2. 将/src/test/resources/keystore.jks用于 测试代码。
    3. 使用jar中的/resources。

    如果你听从我以前的建议,那你就没有什么特别的事可做了。

    1. 资源在 src/main/resources 在普通类路径中可用
    2. 资源在 src/test/resources 在测试类路径中可用(运行时优先于普通类路径) mvn test )
    3. SRC/主/资源 是资源路径的根。如果你想在 /my/package/my.properties 然后放入 src/main/resources/my/package/my.properties .

    如果这真的不能满足你的需求,那就看看 resources filtering . 过滤可以与 profiles 更复杂的事情。或者您也可以使用多个过滤器,并通过传递属性来选择正确的过滤器。但是,正如我说的,我不确定你是否需要这个。

    推荐文章