Maven 应用程序中的自定义配置文件 (Java/Scala)

Custom configuration files in Maven application (Java/Scala)

我有一个用 Scala 编写并部署为 .jar 的 Maven 项目。该项目具有典型结构:

project-root
|__src
   |__main
   |  |__scala
   |  |__resources
   |
   |__test
      |__scala
      |__resources   

我想将应用程序中的许多硬编码值提取到配置文件中。

我可以在任何地方创建一个文本配置文件,从代码中读取它并使用参数,但我正在寻找一个最好的 practice/approach。我想考虑这些事情:

如果您希望能够在不构建 jar 的情况下更改配置值,您将希望您的配置位于工件外部。有一些方法可以修改构建的 jar 的内容,但我认为这不是你想要做的。如果你想拥有配置,你可以随时更改,将它放在你的 jar 之外并在运行时在类路径中引用它。

如果您想将它保留在您的工件上,并在更改值时重建,请将配置文件保留在 src/main/resources 中。 Maven 会自动将它打包到您的 jar 文件中,位于存档的根目录下。

至于格式,这可能是个人喜好。阅读 YAML 通常需要另一个库(例如 snakeyml)才能有效解析,因此如果您试图让您的库依赖于依赖项,则可以查看 .config 或 .properties 文件。否则,XML 和 YAML 总是适合复杂的配置。