Tonyukuk
Tonyukuk

Reputation: 6195

how to deploy multiple wars using the tomcat plugin in maven

From the forums that I followed I tried some ways to find a way to deploy mutliple wars using tomcat plugin in maven but I could not succeed.

I created a third project and used three projects in order to deploy them but I have not done it. Could you please tell me way to do it ?

Best Regards Alper Kopuz

Here is the pom.xml that I used :

<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>

Upvotes: 5

Views: 6749

Answers (2)

Lee Meador
Lee Meador

Reputation: 12985

Each webapp will need a different context root which is supplied to the tomcat7 maven plugin with the "path" value.

You will deploy each web app from its own POM independently. But since you have a pom type project that causes the others to build, you should be able to redeploy all three at once.

Note that there are two ways to deploy using this plugin:

  1. You can deploy without the war. It just compiles the java files and deploys them directly to tomcat.
  2. You can deploy the war. Maven will have to build the war and then it gets deployed to Tomcat. This is more like a production deployment and helps you verify the war will deploy correctly.

So. Move your plugin XML to each of the three "modules" pom files. They will have type 'war'. Then add this under configuration:

<path>paysWeb</path>

under the <configuration> tag for the first 'module'. Of course, you use the different names for the <path> for each of the 'module's.

There is more info here: http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/usage.html

Upvotes: 1

gma
gma

Reputation: 2563

I guess you cannot use the tomcat plugin on a pom type project, try instead to configure the plugin into one of the war projects and include the others as webapp dependencies with something like that :

<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>

Look also at this post (but unanswered)

Upvotes: 4

Related Questions