一尘不染

Maven部署到多个Tomcat服务器

tomcat

使用可编写的maven将战争部署到多个tomcat服务器的最简单的例子是什么?

我尝试了以下URL并询问了邮件列表,但没有提出任何简短且可以正常使用的内容。

该示例应该在示例中某处定义了服务器(带有示例用户名/密码)


阅读 257

收藏
2020-06-16

共1个答案

一尘不染

Markus Lux的想法也可以通过配置文件管理与Maven2解决方案一起应用:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
        </plugin>
    </plugins>
    ...
</build>
<profiles>
    <profile>
        <id>env-foo1</id>
        <!-- Activated when -Denv=foo1 is given as parameter. -->
        <activation>
            <property>
                <name>env</name>
                <value>foo1</value>
            </property>
        </activation>
        <properties>
            <deploy.env>xxx</deploy.env>
            <tomcat.manager>http://foo1/manager</tomcat.manager>
            <tomcat.manager.username>foo</tomcat.manager.username>
            <tomcat.manager.password>bar</tomcat.manager.password>
        </properties>
    </profile> 
    <profile>
        <id>env-foo2</id>
        <!-- Activated when -Denv=foo2 is given as parameter. -->
        <activation>
            <property>
                <name>env</name>
                <value>foo2</value>
            </property>
        </activation>
        <properties>
            <deploy.env>dev</deploy.env>
            <tomcat.manager>http://foo2/manager</tomcat.manager>
            <tomcat.manager.username>foo</tomcat.manager.username>
            <tomcat.manager.password>bar</tomcat.manager.password>
        </properties>
    </profile>
    ... 
</profiles>

然后,您只需要使用适当的参数( -Denv = foo1-Denv = foo2 ,…)运行 mvn 命令X次。


除此之外,您还可以使用Hudson Continuous
Integration服务器的Matrix功能来增强此解决方案。

基本上,您只需要在Hudson中定义一个“常规”
Maven2作业即可,并且通过Matrix功能,您可以要求Hudson多次运行此作业,每个环境一次。换句话说,您创建了Hudson作业,然后使用 env
参数的所有可能值定义“环境轴” :

  • foo1
  • foo2
  • foo3

然后,Hudson将使用 mvn命令以及参数_-Denv=foo1_来构建应用程序。一旦构建完成,它将构建相同的应用程序,但参数为_-Denv = foo2_ ,依此类推…

这样,Hudson将在各种环境中部署您的应用程序。

希望我的解决方案能帮助您实现目标…

2020-06-16