在通过Maven部署时设置特定于应用程序的属性

时间:2018-12-02 18:33:20

标签: maven tomcat8 webdeploy

我想将Java应用程序两次部署到一台tomcat服务器,每次具有不同的环境属性。

我想找到一种方式

mvn tomcat7:deploy -Denvironment=local

我不介意使用其他Maven插件。

部署后无需更改文件。 有可能吗? 谢谢您的回答。

2 个答案:

答案 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}