<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jun 28, 2015 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache Axis2 - 
        
        Quick Guide to Maven for Axis 2.0</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20150628" />
    <meta http-equiv="Content-Language" content="en" />
        <meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="text/html; charset=us-ascii" />
        </head>
  <body class="composite">
    <div id="banner">
                        <a href="http://www.apache.org/" id="bannerLeft">
                                        <img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2" />
                </a>
                                            <a href="./" id="bannerRight">
                                                <img src="images/axis.jpg" alt="Apache Axis2" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
            
                <div class="xleft">
        <span id="publishDate">Last Published: 2015-06-28</span>
                  &nbsp;| <span id="projectVersion">Version: 1.6.3</span>
                      </div>
            <div class="xright">                    <a href="index.html" title="Axis2/Java">Axis2/Java</a>
            |
                        <a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a>
              
            
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
            
                                <h5>Axis2/Java</h5>
                  <ul>
                  <li class="none">
                          <a href="index.html" title="Home">Home</a>
            </li>
          </ul>
                       <h5>Downloads</h5>
                  <ul>
                  <li class="none">
                          <a href="download.cgi" title="Releases">Releases</a>
            </li>
                  <li class="none">
                          <a href="modules/index.html" title="Modules">Modules</a>
            </li>
                  <li class="none">
                          <a href="tools/index.html" title="Tools">Tools</a>
            </li>
          </ul>
                       <h5>Documentation</h5>
                  <ul>
                  <li class="none">
                          <a href="docs/toc.html" title="Table of Contents">Table of Contents</a>
            </li>
                  <li class="none">
                          <a href="docs/installationguide.html" title="Installation Guide">Installation Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/quickstartguide.html" title="QuickStart Guide">QuickStart Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/userguide.html" title="User Guide">User Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/jaxws-guide.html" title="JAXWS Guide">JAXWS Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/pojoguide.html" title="POJO Guide">POJO Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/spring.html" title="Spring Guide">Spring Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/webadminguide.html" title="Web Administrator's Guide">Web Administrator's Guide</a>
            </li>
                  <li class="none">
                          <a href="docs/migration.html" title="Migration Guide (from Axis1)">Migration Guide (from Axis1)</a>
            </li>
          </ul>
                       <h5>Resources</h5>
                  <ul>
                  <li class="none">
                          <a href="faq.html" title="FAQ">FAQ</a>
            </li>
                  <li class="none">
                          <a href="articles.html" title="Articles">Articles</a>
            </li>
                  <li class="none">
                          <a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki">Wiki</a>
            </li>
                  <li class="none">
                          <a href="refLib.html" title="Reference Library">Reference Library</a>
            </li>
                  <li class="none">
                          <a href="api/index.html" title="Online Java Docs">Online Java Docs</a>
            </li>
          </ul>
                       <h5>Get Involved</h5>
                  <ul>
                  <li class="none">
                          <a href="overview.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="svn.html" title="Checkout the Source">Checkout the Source</a>
            </li>
                  <li class="none">
                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="release-process.html" title="Release Process">Release Process</a>
            </li>
                  <li class="none">
                          <a href="guidelines.html" title="Developer Guidelines">Developer Guidelines</a>
            </li>
                  <li class="none">
                          <a href="siteHowTo.html" title="Build the Site">Build the Site</a>
            </li>
          </ul>
                       <h5>Project Information</h5>
                  <ul>
                  <li class="none">
                          <a href="team-list.html" title="Project Team">Project Team</a>
            </li>
                  <li class="none">
                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                  <li class="none">
                          <a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code">Source Code</a>
            </li>
                  <li class="none">
                          <a href="thanks.html" title="Acknowledgements">Acknowledgements</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">License</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">Security</a>
            </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                   
            
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!-- ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License. --><html xmlns="http://www.w3.org/1999/xhtml">
    
        <h1 align="center">Quick Guide to Maven for Axis 2.0</h1>
        <div class="section"><h2 align="left">Introduction<a name="Introduction"></a></h2>
        <p align="left">
            <a class="externalLink" href="http://maven.apache.org">Maven 2</a>
            is used
            as the build environment for Axis2. This document will provide a quick
            guide on how to use Maven with our project.
        </p>
        <div class="section"><h2 align="left">Commands<a name="Commands"></a></h2>
        <table border="0" class="bodyTable">
            <tbody>
                <tr class="a">
                    <th scope="col">
                        <div align="left">Command</div>
                    </th>
                    <th scope="col">
                        <div align="left">Description</div>
                    </th>
                </tr>
                <tr class="b">
                    <td>mvn clean</td>
                    <td>Cleans all the content built so far in the target/ folder. This
                        will not delete jars from your local repository.
                    </td>
                </tr>
                <tr class="a">
                    <td>
                        <div align="left">mvn install</div>
                    </td>
                    <td>
                        <div align="left">Run a full build.</div>
                    </td>
                </tr>
                <tr class="b">
                    <td>
                        <div align="left">mvn test</div>
                    </td>
                    <td>
                        <div align="left">Runs our basic test suite.</div>
                    </td>
                </tr>
                <tr class="a">
                    <td>
                        <div align="left">mvn clean test</div>
                    </td>
                    <td>
                        <div align="left">Cleans up, rebuilds everything from scratch, and then runs the basic test
                            suite.
                        </div>
                    </td>
                </tr>
                <tr class="b">
                    <td>
                        <div align="left">mvn -Dtest=MyTest install</div>
                    </td>
                    <td>
                        <div align="left">run a single test (cd to the specific module say kernel before running this
                            and don't use the package name of the class, just the class name).
                        </div>
                    </td>
                </tr>
                <tr class="a">
                    <td>
                        <div align="left">mvn dependency:resolve</div>
                    </td>
                    <td>
                        <div align="left">print dependencies under any module</div>
                    </td>
                </tr>
                <tr class="b">
                    <td>
                        <div align="left">mvn site</div>
                    </td>
                    <td>
                        <div align="left">Generates the website in target/site/</div>
                    </td>
                </tr>
                <tr class="a">
                    <td>
                        <div align="left">mvn idea:idea</div>
                    </td>
                    <td>
                        <div align="left">Generates IDEA .ipr, .iml and .iws project
                            files.
                        </div>
                    </td>
                </tr>
                <tr class="b">
                    <td>
                        <div align="left">mvn -Dtest=false</div>
                    </td>
                    <td>
                        <div align="left"></div>
                        Builds Axis2 and skips all the tests.
                    </td>
                </tr>
                <tr class="a">
                    <td>
                        <div align="left">mvn -U -Drelease clean install</div>
                    </td>
                    <td>
                        <div align="left"></div>
                        Generate release artifacts.
                    </td>
                </tr>
            </tbody>
        </table>
        <div class="section"><div class="section"><h4>Notes:<a name="Notes:"></a></h4>
        <ul>
            <li>The &quot;-U&quot; ensures that you fetch the latest snapshots</li>
            <li>The &quot;-Drelease&quot; runs the pom.xml under modules/distribution. The zip's are created under
                modules/distribution/target
            </li>
            <li>To skip tests use &quot;-Dtest=false&quot;</li>
            <li>If you run into an exception, switch on printing of full exception using &quot;-e&quot;</li>
            <li>If you want to see the versbose output, use &quot;-X&quot;</li>
        </ul>
        </div></div><div class="section"><h3>Ant helper for the m2 build<a name="Ant_helper_for_the_m2_build"></a></h3>
        <p>If you prefer to use Ant, we have a build.xml. Please note that there are 2 maven2 plugins that need to be
            built first when you update version # for Axis2. the ant build.xml takes care of that automatically. It
            builds
            axis2-aar-maven-plugin and axis2-mar-maven-plugin before it runs the main build.
        </p>
        <table border="0" class="bodyTable">
            <tbody>
                <tr class="a">
                    <th scope="col">
                        <div align="left">Command</div>
                    </th>
                    <th scope="col">
                        <div align="left">Description</div>
                    </th>
                </tr>
                <tr class="b">
                    <td>ant clean&quot;</td>
                    <td>cleans up</td>
                </tr>
                <tr class="a">
                    <td>ant install&quot;</td>
                    <td>runs the build</td>
                </tr>
                <tr class="b">
                    <td>ant deploy&quot;</td>
                    <td>deploys artifacts in apache m2 snapshots repo</td>
                </tr>
                <tr class="a">
                    <td>ant -Doffline=true clean&quot;</td>
                    <td>offline clean up</td>
                </tr>
                <tr class="b">
                    <td>ant -Doffline=true install&quot;</td>
                    <td>offline build</td>
                </tr>
                <tr class="a">
                    <td>ant -Dskip=true install&quot;</td>
                    <td>run the build, but skip the tests</td>
                </tr>
                <tr class="b">
                    <td>ant -Dskip=true install&quot;</td>
                    <td>run the build, but skip the tests</td>
                </tr>
                <tr class="a">
                    <td>ant -Dskip=true deploy&quot;</td>
                    <td>deploys artifacts, but skip the tests</td>
                </tr>
                <tr class="b">
                    <td>ant -Doffline=true -Dskip=true install&quot;</td>
                    <td>run the build in the offline and skips the tests</td>
                </tr>
            </tbody>
        </table>
    </div>
</html>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
              Copyright &#169;                    2004-2015
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
            
                  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
