我有一个使用一些外部Java库的Play 2应用程序。其中一些(例如Paypal商家sdk)依赖于配置的属性文件(例如sdk_config.properties
),我已将其放入conf
目录。
使用play dist
将此应用程序部署到其他环境时,是否有一种合理的方法来替换每个环境的属性文件?对于application.conf中的主要配置,这很简单,例如start -Dconfig.resource=prod.conf
,但我不确定如何为属性文件做类似的事情。
答案 0 :(得分:1)
指定config.resource(以及许多其他好东西)的支持内置于带有play的typesafe配置库中。依赖于类路径上的属性文件的其他第三方库可能会也可能不会接受类似的东西,所以如果你很幸运,那么有一种特定于lib的方法可以将它指向一个单独的配置文件。
如果他们不这样做,那么唯一的选择是以某种方式在类路径上为不同的环境提供不同的文件。这基本上可以通过两种方式完成:
一个。不要使用工件发送文件,而是按照每个环境提供它,并在开始播放时在类路径中添加它。
B中。要为不同的配置创建不同的工件,这将要求您自定义dist以为每个不同的env创建一个工件。
我会选择A,因为它允许有一个可以在任何地方运行的工件,但它可能会增加一些烦恼来在dev env等中运行应用程序。