我想为所有环境DEV / UAT / PROD单独部署WAR文件,但我依赖属性文件让我知道我将如何做?

时间:2016-06-01 15:52:35

标签: java maven tomcat deployment

目前在我的comp中,他们通过创建不同的WAR文件在不同的环境中部署WAR文件。 Exp:对于DEV,他们将创建和部署, 对于UAT,他们将创建和部署 由于属性文件的某些依赖性。

所以我想要解决方案,我将在服务器端或WAR文件中配置如何部署仅由Developer创建的单个WAR文件 这也是最好的做法。

我从其他人那里听说我们可以通过在服务器端配置与环境相关的环境属性来实现。

请提供应该正常工作的完美解决方案......

Hopine for + ve answer。 谢谢!

1 个答案:

答案 0 :(得分:2)

您可以根据DEV,UAT等环境保留不同的属性文件。 现在,在不同的环境中,您可以保留环境变量,例如env为DEV和UAT。

在Tomcat中,可以通过在vm选项中给出它来简单地设置-Denv = DEV或-Denv = UAT。

现在您可以创建相同的war文件,该文件将包含所有环境的所有配置文件,并根据您将获取的环境变量和配置文件。

希望回答你的问题。

示例:下面是war插件

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <warName>${app.jvm}</warName>
        <webResources>
            <resource>
                <directory>${basedir}/src/main/resources/config</directory>
                <targetPath>WEB-INF</targetPath>
                <filtering>true</filtering>
            </resource>
        </webResources>
    </configuration>
</plugin>

这里我们复制* -dev.properties * -uat.properties

现在例如,如果您在本地

中使用tomcat服务器
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8086</port>
        <ignorePackaging>true</ignorePackaging>
        <systemProperties>
            <env>dev</env>
        </systemProperties>
    </configuration>
</plugin>

像这样你可以在tomcat中设置环境变量。在基于System.getProperty(&#34; env&#34;)启动应用程序时,您可以选择配置文件。