【问题标题】:how to deploy multiple wars using the tomcat plugin in maven如何在maven中使用tomcat插件部署多个war
【发布时间】:2013-06-06 06:12:55
【问题描述】:

从我关注的论坛中,我尝试了一些方法来找到一种在 maven 中使用 tomcat 插件部署多重战争的方法,但我无法成功。

我创建了第三个项目并使用了三个项目来部署它们,但我还没有这样做。你能告诉我怎么做吗?

最好的问候 阿尔珀·科普兹

这是我使用的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>
tr.com.provus.pays
</groupId>
<artifactId>PAYSGroupProject</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>

  <modules>
    <module>../PAYSWeb</module>
    <module>../PAYSDashboard</module>
    <module>../PAYSStaticWeb</module>
  </modules>

  <name>PAYSGroupProject</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
  <plugins>
    <plugin>
<groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
     <executions>
          <execution>
            <id>deploy</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>

         <configuration>
       <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
  </plugin>
  </plugins>
  </build>

</project>

【问题讨论】:

    标签: java maven tomcat deployment


    【解决方案1】:

    我猜你不能在 pom 类型的项目中使用 tomcat 插件,而是尝试将插件配置到一个 war 项目中,并将其他插件包含为 webapp 依赖项:

    <configuration>
        <webapps>
          <webapp>
            <contextPath>/PAYSWeb</contextPath>
            <groupId>tr.com.provus.pays</groupId> 
            <artifactId>PAYSWeb</artifactId>
            <version>${project.version}</version>
            <type>war</type>    
            <asWebapp>true</asWebapp>
          </webapp>
          <webapp>...</webapp>
        </webapps> 
      </configuration>
    

    看看这个post(但没有回答)

    【讨论】:

    • 如果依赖尝试在同一阶段运行插件和启动tomcat怎么办?
    【解决方案2】:

    每个 webapp 都需要一个不同的上下文根,该根以“路径”值提供给 tomcat7 maven 插件。

    您将从其自己的 POM 独立部署每个 Web 应用程序。但由于您有一个 pom 类型的项目会导致其他项目构建,您应该能够一次重新部署所有三个。

    请注意,使用此插件有两种部署方式:

    1. 您可以在没有战争的情况下进行部署。它只是编译java文件并将它们直接部署到tomcat。
    2. 您可以部署战争。 Maven 必须构建战争,然后将其部署到 Tomcat。这更像是生产部署,可帮助您验证战争是否会正确部署。

    所以。将您的插件 XML 移动到三个“模块”pom 文件中的每一个。他们将具有“战争”类型。然后在配置下添加:

    <path>paysWeb</path>
    

    在第一个“模块”的&lt;configuration&gt; 标记下。当然,对于每个“模块”,您可以为 &lt;path&gt; 使用不同的名称。

    这里有更多信息:http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/usage.html

    【讨论】:

    • 如果没有更多关于它如何不起作用以及它做了什么的详细信息,我不知道如何为您提供帮助。也许经过这么长时间,一个新的问题是您可以在哪里发布您更改的 pom 或其中的一部分。
    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多