我怎样才能在两种不同的环境中使用maven tomcat插件?

时间:2011-06-15 14:54:57

标签: tomcat deployment configuration maven profile

在我的tomcat项目中,我在路径src/main/tomcatconf中有一个配置文件夹。

现在我想部署到2个不同的服务器。开发服务器和生产服务器。

我用mvn tomcat运行我的开发服务器:运行。即时运行我的服务器,所有工作都很完美。

现在我想添加生产服务器,使用不同的配置文件夹(即src/main/production/tomcatconf)并在我的文件系统中的Tomcat实例上部署.war(即/opt/tomcat6) 使用mvn tomcat:deploy命令。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

最后我使用maven资源插件和配置文件配置。

我已经制作了两个额外的文件夹:

的src /主/生产

的src /主/发展,

然后我将Meta-inf / persistence.xml移动到这些文件夹中。

然后我在我的pom.xml上添加了这部分配置:

<profiles>
    <profile>
        <id>development</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <property>
                <name>environment.type</name>
                <value>dev</value>
            </property>
        </activation>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
                <resource>
                    <directory>src/main/development</directory>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>production</id>
        <activation>
            <property>
                <name>environment.type</name>
                <value>prod</value>
            </property>
        </activation>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
                <resource>
                    <directory>src/main/production</directory>
                </resource>
            </resources>
        </build>
    </profile>

</profiles>

以这种方式我有一个公共资源文件夹和一个基于环境类型的附加文件夹。

现在我跑的时候 mvn tomcat:run -Denvironment.type=dev 我使用我的开发环境,当我运行时 mvn tomcat:run -Denvironment.type=prod 我使用我的生产环境。

这种方法的唯一缺点是每次我想要改变环境类型我必须运行 mvn clean构建正确的配置文件。

请让我知道如果你认为我错了或你想提出另一种解决方案

此致 Antonio Musella