如何在maven中使用tomcat插件部署多个战争

时间:2013-06-10 14:36:41

标签: java maven tomcat deployment

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

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

最诚挚的问候 Alper Kopuz

这是我使用的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>

2 个答案:

答案 0 :(得分:4)

我猜你不能在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(但未答复)

答案 1 :(得分:1)

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

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

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

  1. 你可以在没有战争的情况下部署。它只是编译java文件并将它们直接部署到tomcat。
  2. 你可以部署战争。 Maven将不得不构建战争,然后将其部署到Tomcat。这更像是一个生产部署,可以帮助您验证战争是否会正确部署。
  3. 因此。将插件XML移动到三个“模块”pom文件中的每一个。他们将有类型'战争'。然后在配置下添加:

    <path>paysWeb</path>
    

    在第一个“模块”的<configuration>标记下。当然,您为每个'模块'使用<path>的不同名称。

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