如何在Scala脚本中为FileInputStream提供属性文件?

时间:2014-10-08 15:00:01

标签: scala sbt

我有一个Scala脚本,我想从sbt调用。此Scala脚本引用了一些依赖项。其中一个依赖项使用属性文件。此属性文件由运行时提供,因为此依赖项作为单独的应用程序运行。

为了有可能将该属性 - 使用依赖项作为独立运行,我编写了这个我想从sbt调用的Scala脚本。

val fis = new FileInputStream("my.properties") // Fails here
val props = new Properties()

当我运行上面的代码时,它失败了,在我的依赖项中加载了属性文件的异常。

如何在sbt?

下为脚本提供此属性文件

1 个答案:

答案 0 :(得分:0)

将文件my.properties放在src/main/resources中并使用Source.fromURL(getClass.getResource("/my.properties"))代替(因为它为您提供了更大的灵活性,可以将文件放在文件系统上,只要它在CLASSPATH上)。

作为帮助程序,使用以下代码了解正在使用“裸”File*类型时文件所在的位置:

println(new java.io.File("my.properties").getAbsolutePath)

由于当前工作目录是项目的顶级目录,因此将在$PROJECT_ROOT_DIR/my.properties中搜索该文件。