<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2022-07-14 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20220714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Developing Apache Axis2</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
      <script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href="./" id="bannerRight"><img src="images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2022-07-14<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.2<span class="divider">|</span></li>
        <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
    <li class="active ">Developing Apache Axis2</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Axis2/Java</li>
    <li><a href="index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a>  </li>
    <li><a href="release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a>  </li>
    <li><a href="release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a>  </li>
    <li><a href="release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a>  </li>
    <li><a href="release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a>  </li>
    <li><a href="release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a>  </li>
    <li><a href="release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a>  </li>
    <li><a href="release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a>  </li>
    <li><a href="release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</a>  </li>
    <li><a href="release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a>  </li>
      </ul>
  </li>
    <li><a href="modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li><a href="docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a>  </li>
    <li><a href="docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li><a href="docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a>  </li>
    <li><a href="docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Checkout the Source</a>
  </li>
    <li><a href="mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="release-process.html" title="Release Process"><span class="none"></span>Release Process</a>  </li>
    <li><a href="guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a>  </li>
          <li class="nav-header">Apache</li>
    <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
    <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >

    
        <section>
<h2><a name="Introduction"></a>Introduction</h2>
            
<p>
                This document provides information on how to use Git to get a
                GitHub checkout/update, make commits to the repository, etc., in the
                process of contributing to Apache projects (specifically Axis2).
                Instructions on configuring IDEs for development and using Maven to
                build the project is also included here.
            </p>
        </section>
        <section>
<h2><a name="Working_with_GitHub_.28Git.29"></a>Working with GitHub (Git)</h2>
            
<p>
                The Axis2 development team uses GitHub (Git) for source
                control.
            </p>
        </section>
        <section>
<h2><a name="Checkout_Axis2_from_Git"></a>Checkout Axis2 from Git</h2>
            
<p>
                To check out the latest version of Axis2 from the Foundation's
                GitHub repository, you must use the following URL:
            </p>
            
<ul>
                
<li><b>If you are a committer or not a committer, the link is the same:</b> <a class="externalLink" href="https://github.com/apache/axis-axis2-java-core">https://github.com/apache/axis-axis2-java-core</a></li>
            </ul>
            
<p>
                Once you have successfully installed Git, you can check
                out Axis2 trunk by following these steps:
            </p>
            
<ol style="list-style-type: decimal">
                
<li>Run <b>git clone &lt;repository URL&gt;</b> where
                the repository URL from the previous list.</li>
                
<li>This step will check out the latest version of the Axis2 Java
                codebase to a directory named &quot;axis-axis2-java-core&quot;.</li>
            </ol>
        </section>
        <section>
<h2><a name="Installing_Maven_3"></a>Installing Maven 3</h2>
            
<p>
                Axis2's build is based on Maven 3. Maven is a build system that
                allows for the reuse of common build projects across multiple
                projects. For information about obtaining, installing, and
                configuring Maven 3, please see the <a class="externalLink" href="http://maven.apache.org">Maven project page</a>.
                To use Maven to build the Axis2 project, Please install
                <a class="externalLink" href="http://maven.apache.org/download.html">Maven2</a> and
                follow instructions here -  <a href="maven-help.html">Quick Guide to Maven for Axis 2.0</a>.
            </p>
        </section>
        <section>
<h2><a name="Configuring_your_IDE"></a>Configuring your IDE</h2>
            
<p>
                The Axis2 development team uses a variety of development tools
                from vi to emacs to Eclipse to Intellij/IDEA. The following section
                is not an endorsement of a specific set of tools, it is simply
                meant as a pointer to ease the process of getting started with
                Axis2 development.
            </p>
            <section>
<h3><a name="Intellij_IDEA"></a>Intellij IDEA</h3>
                
<p>
                    Type <b>mvn idea:idea</b>. Generates the necessary IDEA .ipr, .iml
                    and .iws project files.
                </p>
            </section>
            <section>
<h3><a name="Eclipse"></a>Eclipse</h3>
                
<p>
                    We recommend using <a class="externalLink" href="http://maven.apache.org/plugins/maven-eclipse-plugin/">maven-eclipse-plugin</a>
                    to import the Axis2 sources into Eclipse. This works best with the following
                    combinations of versions and settings:
                </p>
                
<ul>
                    
<li>
                        Early versions of Maven 2 have issues with non standard packagings
                        (<code>bundle</code>, <code>aar</code> and <code>mar</code> in the case of Axis2)
                        in multi-module builds. While this has no impact on the normal Maven
                        build, it prevents the Maven Eclipse plugin from identifying modules
                        with these packagings as Java projects. Therefore it is recommended
                        to use Maven 2.2.x or 3.0.x to execute the Maven Eclipse plugin.
                    </li>
                    
<li>
                        By default, the Maven Eclipse plugin only imports generated sources
                        and resources created during the <code>generate-sources</code> and
                        <code>generate-resources</code> phases, but fails to locate them if they
                        are generated during the <code>generate-test-sources</code> and
                        <code>generate-test-resources</code> phases. This is due to a limitation in Maven 2 (see
                        <a class="externalLink" href="http://jira.codehaus.org/browse/MECLIPSE-37">MECLIPSE-37</a>
                        for more information). Executing the <code>eclipse:eclipse</code> goal after
                        the <code>process-test-resources</code> phase is also not enough because of
                        <a class="externalLink" href="http://jira.codehaus.org/browse/MDEP-259">MDEP-259</a>. The
                        best is to execute it after the <code>install</code> phase. The <code>skipTests</code>
                        property can be used to skip the execution of the unit tests (<code>maven.test.skip</code>
                        is not appropriate here because it also skips some of the goals configured
                        in the <code>generate-test-sources</code> and <code>generate-test-resources</code> phases).
                    </li>
                </ul>
                
<p>
                    To summarize, use the following command to prepare the Axis2 sources for
                    import into Eclipse:
                </p>
                
<div>
<pre>mvn -DskipTests=true install eclipse:eclipse</pre></div>
                
<p>
                    As usual, before importing the projects into Eclipse, check that a Classpath Variable
                    for <code>M2_REPO</code> is configured in Eclipse. Then select File &gt; Import &gt; Existing Projects
                    into Workspace &gt; Select root directory. Selecting the root of
                    the Axis source discovers all the modules and allows them to be
                    imported as individual projects at once.
                </p>
            </section>
        </section>
    

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2022
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>