【问题标题】:What is the best practice for the location of Java application configuration files?Java 应用程序配置文件位置的最佳实践是什么?
【发布时间】:2010-10-31 09:35:51
【问题描述】:

对于配置文件应存储在 Java 项目中的何处,是否存在最佳实践。在这种情况下,文件类型是 Java 属性文件,但我确实在其他项目中使用了其他文件类型。

从独立应用程序(.jar)到网络应用程序(.war),建议是否会有所不同?

【问题讨论】:

  • 您希望能够在构建后更改配置,还是希望配置成为您构建的 .jar/.war 文件的一部分?
  • @ScArcher2,对于我们在这里的生产版本,我们已经提出了发布请求,因此更改配置文件与更改整个包文件一样麻烦。所以我开始更喜欢将配置保留在包中

标签: java configuration properties project-structure


【解决方案1】:

您会发现很多开源项目都遵循directory structure used by Maven。在此设置中,您的应用程序源代码保存在 src/main/java 中,应用程序资源(包括属性文件)保存在 src/main/resources 中,其他配置文件保存在 src/main/config 中。与单元测试相关的文件使用类似的目录结构; src/test/java 和 src/test/resources。

我个人倾向于使用这种布局,因为它被广泛使用。我还在项目根目录下保留了一个“etc”目录来存放与应用程序不直接相关的文件。例如,我将 PMD 和 Checkstyle 的配置文件保存在 etc.

【讨论】:

    【解决方案2】:

    通常的做法是为配置文件创建一个resources 目录,该目录由构建过程复制到构建工件中。 Maven 在其default project structure 中使用了它。在resources 目录中,您可能还具有META-INF 目录和/或在打包为war 的应用程序中的WEB-INF 目录。

    【讨论】:

      【解决方案3】:

      我用:

      • META-INF/ 用于 jar 文件
      • WEB-INF/ 用于 war 文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 2021-01-09
        • 2010-09-10
        • 2012-01-14
        • 2021-09-04
        • 2011-04-21
        • 2011-11-28
        相关资源
        最近更新 更多