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

时间:2016-08-25 08:31:48

标签: scala maven configuration config

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

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

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

我可以在任何地方创建文本配置文件,从代码中读取并使用参数,但我正在寻找最佳实践/方法。我想考虑这些事情:

  • 有没有办法让我可以更改配置值而不必重建.jar?那将非常实用。
  • 文件的最佳位置在哪里? E. g。创建一个project-root/src/config目录并将文件放在那里?
  • 选择不同格式的任何显着理由?我会选择XML,但我已经看到了很多YAML和HOCON ......

1 个答案:

答案 0 :(得分:1)

如果您希望能够在不构建jar的情况下更改配置值,则需要将配置置于工件外部。有办法修改内置jar的内容,但我不认为这是你想要做的。如果你想拥有配置,你可以随时更改,将它保存在jar之外,并在运行时在Classpath上引用它。

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

至于格式,这可能是个人偏好。阅读YAML通常需要另一个库(如snakeyml)来有效地解析,所以如果你试图让你的库保持依赖关系,可以改为查看.config或.properties文件。否则,XML和YAML总是很适合复杂的配置。