1

我正在将一个电梯项目作为一个巨大的 mvn 项目的子项目。我将属性文件放入:

  • src/main/resources/props/staging.props
  • src/main/resources/props/production.props

在子项目文件夹中。

然后我运行码头:

mvn jetty:run -Drun.mode=staging

我使用以下方法打印了设置net.liftweb.util.Props

println("file_name:" + Props.fileName)
println("mode_name:" + Props.modeName)

输出:

file_name:lift.props
mode_name:staging

模式名称是正确的。但是,文件名完全错误。net.liftweb.util.Props仍在使用已在源代码中硬编码的文件名。它似乎从未到达我的财产文件。

我错过了什么吗?或者它不能与码头一起工作?

4

2 回答 2

3

虽然duffymo 是正确的,并且您可以使用底层 servlet 工具来获取资源,但我仍然会使用Lift 的 Properties abstraction。它已经完成了区分不同运行模式的工作。它还允许您为每个用户和/或每台机器拥有不同的属性,这可能很有用,具体取决于您的开发团队。

给定模式的默认属性应放在 中/props/modeName.default.props,因此您的文件应重命名为:

  • src/main/resources/props/staging.default.props
  • src/main/resources/props/production.default.props
于 2012-06-13T13:39:44.303 回答
2

我会将 .properties 文件放在您的 /WEB-INF/classes 中,并使用 servlet 上下文getResourceAsStream()来读取它。

于 2012-06-13T00:16:06.560 回答