As an example, here's my deploy 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/maven-v4_0_0.xsd";>
   <modelVersion>4.0.0</modelVersion>

   <parent>
       <artifactId>waitlist-parent</artifactId>

       <groupId>edu.berkeley.ist.waitlist</groupId>

       <version>1.2</version>

       <relativePath>../waitlist-parent/pom.xml</relativePath>
   </parent>

   <artifactId>waitlist-deploy</artifactId>

   <packaging>jar</packaging>

   <name>WMF waitlist deploy</name>

   <build>
       <plugins>
           <plugin>
               <groupId>org.codehaus.cargo</groupId>
               <artifactId>cargo-maven2-plugin</artifactId>
               <version>${version.cargo}</version>

               <!-- the tomcat username and password should be in a        -->
               <!-- profile section in your ~/.m2/settings.xml file, not   -->
               <!-- here or a profile in any of your pom.xmls.             -->

               <!-- the tomcat.hostname property is in a profile down      -->
               <!-- below. same for the port.                              -->

               <configuration>
                   <container>
                       <containerId>tomcat6x</containerId>
                       <type>remote</type>
                   </container>

                   <configuration>
                       <type>runtime</type>

                       <properties>
                           
<cargo.remote.username>${tomcat.manager.username}</cargo.remote.username>
                           
<cargo.remote.password>${tomcat.manager.password}</cargo.remote.password>
                           <cargo.hostname>${tomcat.hostname}</cargo.hostname>
                           
<cargo.servlet.port>${tomcat.port}</cargo.servlet.port>
                       </properties>
                   </configuration>

                   <deployer>
                       <type>remote</type>

                       <deployables>
                           <deployable>
                               <groupId>edu.berkeley.ist.waitlist</groupId>
                               <artifactId>waitlist-war</artifactId>

                               <type>war</type>

                               <properties>
                                   <context>waitlist</context>
                               </properties>

                               
<pingURL>http://${tomcat.hostname}:${tomcat.port}/waitlist/</pingURL>
                           </deployable>
                       </deployables>
                   </deployer>
               </configuration>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>edu.berkeley.ist.waitlist</groupId>
           <artifactId>waitlist-war</artifactId>

           <version>${project.version}</version>

           <type>war</type>
       </dependency>
   </dependencies>

   <properties>
       <version.cargo>1.0</version.cargo>

       <!-- you can override these in a profile when necessary -->
       <tomcat.hostname>localhost</tomcat.hostname>
       <tomcat.port>8080</tomcat.port>
   </properties>

   <profiles>
       <profile>
           <id>
               wss-test1-tomcat
           </id>

           <activation>
               <activeByDefault>
                   false
               </activeByDefault>
           </activation>

           <!-- this is just a placeholder, to remind me -->
           <!-- the properties are all set in the parent's pom -->
           <properties>
               <use.this.profile />
           </properties>
       </profile>
   </profiles>
</project>


Rusty Wright wrote:
nagl, to expand on what David is saying; for the two projects that create war files, when you build those war files your final step for each one should be an install (e.g., "mvn -Pwhatever clean verify install") and the install phase will copy the war files into your local maven repository (e.g., ~/.m2 on unix). For maven, install means copy the war, jar, whatever, into your local repository.

Then, in the tomcat deploy project, when you deploy, since you've specified the war files as dependencies, it will first pull the war files from your local maven repository, then deploy them to tomcat.

I use cargo, but I don't know how you could use it to deploy two different war files at the same time. (I'm not saying you can't, just that I don't know if it's possible.)


David C. Hicks wrote:
Oh, no, you misunderstood my intention. You don't build a war file using
the two other wars as a dependency. The only reason you make them
dependencies is to make them available to the plugin for deployment.
Your third project doesn't really have its own artifact, other than the
*.pom file.

nagl wrote:
by declaring the two war files as dependencies in the third project, after i build the third project as a war and deploy it, I am not able to access the first two web apps. what i want to knw is a way to sort of merge the two wars. now maven cargo plugin as something called uber war which does the job of merging. but it is quite complicated and there is very little documentation
on it.


dchicks wrote:
The first question is relatively straightforward. Since your wars are
created in different projects, just set up a third project that has the
artifact WAR files from the other two as dependencies. If your war files
are generated in different modules of the same project, you would
accomplish the same thing using a third module that depends on the other
two. Think of it like you would an assembly, in that case.

Looking at the Tomcat plugin, I don't see any configuration for
deploying multiple wars at the same time. Your third project could have
multiple modules - one for each deployment.

Hopefully, someone has a better answer than that. That seems a bit like
overkill.

Dave


nagl wrote:
So I have two wars which I deploy in tow maven projects using tomcat
plugin.
I want to do this in one step and be able to deploy more than one wars in
a
single maven project. how can i do this. any suggestions

if tomcat plugin doesnt work, is there anyother way this can be done?
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to