我想将Java应用程序两次部署到一台tomcat服务器,每次具有不同的环境属性。
我想找到一种方式
mvn tomcat7:deploy -Denvironment=local
我不介意使用其他Maven插件。
部署后无需更改文件。 有可能吗? 谢谢您的回答。
答案 0 :(得分:0)
您可以拥有一个启用了resource filtering的配置文件(例如application.properties
)。然后,您可以参数化该配置文件中的值,并为每个部署(-Dkey1=value1 -Dkey2=value2
)传递不同的参数值。
您可以在命令行上传递不同的参数值,也可以在different profiles中固定它们,然后只需从命令行(-Psecond-deployment
)激活适当的配置文件即可。
在您的问题中,建议的方法似乎有点不幸:从最基本的意义上讲,Maven是一个构建工具,旨在从构建中生成一致的工件。问题中建议的方法不再是这种情况。如果这是一个从未用作其他模块依赖项的Web应用程序,则可能很好。但是仅强调不同的部署配置是一个部署问题,而不是 build 问题。
答案 1 :(得分:0)
我很少使用解决方法。 我创建了用于更新应用程序属性的不同配置文件。
示例: 在我的POM中,我有:
<profiles>
<profile>
<id>local</id>
<properties>
<environment>local</environment>
....
</properties>
</profile>
并在application.property文件中
environment=@environment@
(那@是正确的!)
这样,我可以使用命令在定义的环境中部署我的应用程序
mvn -P local tomcat7:deploy
并将环境变量用作$ {environment}