<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2018-11-16 
 | 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="20181116" />
    <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: 2018-11-16<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.9<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>
      </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="https://github.com/apache/axis-axis2-java-core/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" >

    
        <div class="section">
<h2><a name="Introduction"></a>Introduction</h2>
            
<p>
                This document provides information on how to use SVN to get an
                SVN 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>
        </div>
        
<div class="section">
<h2><a name="Working_with_Subversion_SVN"></a>Working with Subversion (SVN)</h2>
            
<p>
                The Axis2 development team uses Subversion (SVN) for source
                control. Subversion is a compelling replacement for CVS, developed
                under the auspices of the Tigris community and licensed under an
                Apache compatible license. To learn more about Subversion or to
                download the latest distribution, visit the <a class="externalLink" href="http:///subversion.tigris.org">Subversion project
                site</a>. If you are looking for guidance on setting up and
                installing Subversion, please read the ASF <a class="externalLink" href="http://www.apache.org/dev/version-control.html">Source
                Code Repositories page</a>.
            </p>
        </div>
        
<div class="section">
<h2><a name="Checkout_Axis2_from_Subversion"></a>Checkout Axis2 from Subversion</h2>
            
<p>
                To check out the latest version of Axis2 from the Foundation's
                Subversion repository, you must use one of the following URLs
                depending on your level of access to the Axis2 source code:
            </p>
            
<ul>
                
<li><b>If you are not a committer:</b> <a class="externalLink" href="http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/">http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/</a></li>
                
<li><b>If you are a committer:</b> <a class="externalLink" href="https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/">https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/</a></li>
            </ul>
            
<p>
                If you are a committer, make sure that you have selected an
                svnpasswd. To do this, you must log into svn.apache.org. For more
                information, please read the ASF <a class="externalLink" href="http://www.apache.org/dev/version-control.html">Source Code Repositories page</a>.
            </p>
            
<p>
                Once you have successfully installed Subversion, you can check
                out Axis2 trunk by following these steps:
            </p>
            
<ol style="list-style-type: decimal">
                
<li>Run <b>svn co &lt;repository URL&gt; axis2</b> where
                the repository URL is one of the URLs from the previous list.</li>
                
<li>This step will check out the latest version of the Axis2 Java
                codebase to a directory named &quot;axis2&quot;. The second parameter to the
                <b>svn co</b> selects a directory to create on your local
                machine. If you want to checkout Axis2 to a different directory,
                feel free to change axis2 to any other directory name.</li>
                
<li>To update your working copy to the latest version from the
                repository, execute the <b>svn update</b> command.</li>
                
<li>If you would like to submit a patch, you can execute
                <b>svn diff</b> to create a unified diff for submission
                to the Axis2 JIRA issue tracker.</li>
            </ol>
        </div>
        
<div class="section">
<h2><a name="Installing_Maven_2"></a>Installing Maven 2</h2>
            
<p>
                Axis2's build is based on Maven 2. 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 2, 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>
        </div>
        
<div class="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>
            
<div class="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>
            </div>
            
<div class="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
                        (<tt>bundle</tt>, <tt>aar</tt> and <tt>mar</tt> 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 <tt>generate-sources</tt> and
                        <tt>generate-resources</tt> phases, but fails to locate them if they
                        are generated during the <tt>generate-test-sources</tt> and
                        <tt>generate-test-resources</tt> 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 <tt>eclipse:eclipse</tt> goal after
                        the <tt>process-test-resources</tt> 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 <tt>install</tt> phase. The <tt>skipTests</tt>
                        property can be used to skip the execution of the unit tests (<tt>maven.test.skip</tt>
                        is not appropriate here because it also skips some of the goals configured
                        in the <tt>generate-test-sources</tt> and <tt>generate-test-resources</tt> 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 <tt>M2_REPO</tt> 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>
            </div>
        </div>
    

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