<!--
  ~ 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.
  -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta name="generator" content=
                "HTML Tidy for Windows (vers 14 June 2007), see www.w3.org"/>
        <title>Quick Guide to Maven for Axis 2.0</title>
        <meta http-equiv="content-type" content=
                "text/html; charset=us-ascii"/>
        <link href="css/axis-docs.css" rel="stylesheet" type="text/css"
              media="all"/>
    </head>
    <body lang="en" xml:lang="en">
        <h1 align="center">Quick Guide to Maven for Axis 2.0</h1>
        <h2 align="left">Introduction</h2>
        <p align="left">
            <a 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>
        <h2 align="left">Commands</h2>
        <table border="1" align="center">
            <tbody>
                <tr>
                    <th scope="col">
                        <div align="left">Command</div>
                    </th>
                    <th scope="col">
                        <div align="left">Description</div>
                    </th>
                </tr>
                <tr>
                    <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>
                    <td>
                        <div align="left">mvn install</div>
                    </td>
                    <td>
                        <div align="left">Run a full build.</div>
                    </td>
                </tr>
                <tr>
                    <td>
                        <div align="left">mvn test</div>
                    </td>
                    <td>
                        <div align="left">Runs our basic test suite.</div>
                    </td>
                </tr>
                <tr>
                    <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>
                    <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>
                    <td>
                        <div align="left">mvn dependency:resolve</div>
                    </td>
                    <td>
                        <div align="left">print dependencies under any module</div>
                    </td>
                </tr>
                <tr>
                    <td>
                        <div align="left">mvn site</div>
                    </td>
                    <td>
                        <div align="left">Generates the website in target/site/</div>
                    </td>
                </tr>
                <tr>
                    <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>
                    <td>
                        <div align="left">mvn -Dtest=false</div>
                    </td>
                    <td>
                        <div align="left"></div>
                        Builds Axis2 and skips all the tests.
                    </td>
                </tr>
                <tr>
                    <td>
                        <div align="left">mvn -U -Drelease clean install</div>
                    </td>
                    <td>
                        <div align="left"></div>
                        Generate release artifacts.
                    </td>
                </tr>
            </tbody>
        </table>
        <h4>Notes:</h4>
        <ul>
            <li>The "-U" ensures that you fetch the latest snapshots</li>
            <li>The "-Drelease" runs the pom.xml under modules/distribution. The zip's are created under
                modules/distribution/target
            </li>
            <li>To skip tests use "-Dtest=false"</li>
            <li>If you run into an exception, switch on printing of full exception using "-e"</li>
            <li>If you want to see the versbose output, use "-X"</li>
        </ul>
        <h3>Ant helper for the m2 build</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="1" align="center">
            <tbody>
                <tr>
                    <th scope="col">
                        <div align="left">Command</div>
                    </th>
                    <th scope="col">
                        <div align="left">Description</div>
                    </th>
                </tr>
                <tr>
                    <td>ant clean"</td>
                    <td>cleans up</td>
                </tr>
                <tr>
                    <td>ant install"</td>
                    <td>runs the build</td>
                </tr>
                <tr>
                    <td>ant deploy"</td>
                    <td>deploys artifacts in apache m2 snapshots repo</td>
                </tr>
                <tr>
                    <td>ant -Doffline=true clean"</td>
                    <td>offline clean up</td>
                </tr>
                <tr>
                    <td>ant -Doffline=true install"</td>
                    <td>offline build</td>
                </tr>
                <tr>
                    <td>ant -Dskip=true install"</td>
                    <td>run the build, but skip the tests</td>
                </tr>
                <tr>
                    <td>ant -Dskip=true install"</td>
                    <td>run the build, but skip the tests</td>
                </tr>
                <tr>
                    <td>ant -Dskip=true deploy"</td>
                    <td>deploys artifacts, but skip the tests</td>
                </tr>
                <tr>
                    <td>ant -Doffline=true -Dskip=true install"</td>
                    <td>run the build in the offline and skips the tests</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>
