我有一个Java应用程序(用Play 2.2.1编写),我需要自动化它的部署。我通常使用play dist
命令生成一个zip文件,我稍后将其与conf
文件夹一起提取到部署文件夹,然后运行自定义启动脚本。该脚本只使用https配置的一些标准命令行参数调用生成的start
脚本,即:
./start -Dhttps.port=<port> -Dhttps.keyStoreType=<type> -Dhttps.keyStore=<file> -Dhttps.keyStorePassword=<password>
现在我需要将它部署到不同的环境,这意味着我需要有一个配置文件的中心位置(相同的位置,但不同的文件,适用于所有环境)并保持相同的启动脚本。我尝试使用-Dconfig.file=<absolute path to application.conf file>
参数进行操作,但就我所知,它忽略了自定义的application.conf。有问题的application.conf只包含我通过命令行使用的参数。即使我将conf文件夹放到部署目录中也会被忽略,因此它似乎总是加载某种默认配置。
我知道nginx或类似的不同解决方案,我只是将请求代理到我原来的Play应用程序,或者用于不同环境的自定义运行脚本,但我想知道这种方法到底出了什么问题以及为什么它不起作用。
提前致谢。