Search code examples
tomcatmavenmaven-cargo

How do I package my web app and tomcat together using maven?


I would like to distribute my application packaged as WAR embedded in Apache Tomcat. That is I want to distribute Tomcat along with my application.

How can this sort of distribution packaging can be done with Maven?

I have seen the Maven Cargo Plugin, but it appears to be geared towards deploying applications in containers locally. Perhaps an additional step over Cargo plugin is what I need. cargo:package appears to be interesting but lacks documentation.


Solution

  • Elaborating Tomasz's comment, you can do the following to achieve this.

    1. Download and install tomcat to your local repository.

      mvn install:install-file -DgroupId=org.apache -DartifactId=tomcat -Dversion=7.0.10 -Dpackaging=zip -Dfile=/path/to/file

    2. Use unpack goal of maven dependency plugin to unzip tomcat to a work folder

    3. Use maven assembly plugin to place the application war in webapps folder and create a zip

    You can refer to this pom.xml and this assembly descriptor.