2010-01-16 41 views
1

我有一个密钥库文件,我希望可以在我的应用程序中使用几个类。我创建了一个.config文件,它指向密钥库文件的名称,密码和其他信息。在JAR和开发中处理资源文件路径

这是一个基于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. 罐子里的用途/资源。

回答

3

这是一个基于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. 罐子里的用途/资源。

如果你按照我以前的建议,那么你没有什么特别的事情要做。在src/main/resources

  1. 资源在正常类路径中src/test/resources
  2. 资源是在测试类路径是可用的(runnign mvn test当这对正常类路径优先)
  3. src/main/resources是资源路径的根。如果您想要在/my/package/my.properties下提供某些东西,请将其放入src/main/resources/my/package/my.properties

如果真的这不包括您的需求,那么看看resources filtering。过滤可以与profiles结合使用以获得更复杂的内容。或者,您也可以使用多个过滤器并通过传递属性来选择合适的过滤器。但是,正如我所说,我不确定你需要这个。