Scala SBT项目应用程序配置文件

问题描述 投票:3回答:2

我来自C#.NET世界,当我构建我的Scala项目时,我注意到在开源社区中有多少不同的方法可以做。无论如何在.Net C#项目中我们有Web.configApp.config文件,这对于指定全局使用的app键非常有用,它也有助于转换不同的环境等。

什么是Scala SBT项目的等价物?您知道存储连接字符串和其他应用程序设置的位置吗?

scala sbt configuration-files
2个回答
4
投票

没有通用配置文件名。基本的方法是使用Properties,参见例如how to read properties file in scala,并将文件命名为your-application-name.properties。但是有一个名为Config的流行图书馆,我建议这样做;正如https://github.com/typesafehub/config#standard-behavior所说,它的配置文件的标准名称是

便捷方法ConfigFactory.load()加载以下内容(首先列出的是更高优先级):

  • 系统属性
  • application.conf(具有此名称的classpath上的所有资源)
  • application.json(具有此名称的classpath上的所有资源)
  • application.properties(具有此名称的classpath上的所有资源)
  • reference.conf(具有此名称的classpath上的所有资源)

我们的想法是库和框架应该在他们的jar中附带reference.conf。应用程序应该提供application.conf,或者如果他们想在单个JVM中创建多个配置,他们可以使用ConfigFactory.load(“myapp”)来加载他们自己的myapp.conf。 (如果需要,应用程序也可以提供reference.conf,但您可能没有必要将它与application.conf分开。)

正如@ ashalynd的回答所说,为了让任何这样的库看到你的配置文件,他们应该进入src/{main,test}/resources


4
投票

我想你在谈论application.conf。它可以在/src/main/resources/src/test/resources中找到(分别影响主要和测试设置)。如果在application.conf中不存在/src/test/resources,则主要的application.conf将用于测试。

© www.soinside.com 2019 - 2024. All rights reserved.