<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>Developing Apache Axis2</title>
  <link href="css/axis-docs.css" rel="stylesheet" type="text/css" media="all">
</head>

<body lang="en">
<h1>Developing Apache Axis2</h1>

<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>

<h2>Content</h2>
<ul>
  <li><a href="#svn">Working with Subversion (SVN)</a></li>
  <li><a href="#checkout">Checkout Axis2 from Subversion</a></li>
  <li><a href="#maven">Installing Maven 1</a></li>
  <li><a href="#ide">Configuring your IDE</a></li>
</ul>
<a name="svn"></a>

<h2>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 href="http:///subversion.tigris.org" target="_blank">Subversion project
site</a>.  If you are looking for guidance on setting up and installing
Subversion, please read the ASF <a
href="http://www.apache.org/dev/version-control.html" target="_blank">Source
Code Repositories page</a>.</p>
<a name="checkout"></a>

<h2>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
    href="http://svn.apache.org/repos/asf/webservices/axis2/trunk/java"
    target="_blank">http://svn.apache.org/repos/asf/webservices/axis2/trunk/java</a></li>
  <li><b>If you are a committer:</b> <a
    href="https://svn.apache.org/repos/asf/webservices/axis2/trunk/java"
    target="_blank">https://svn.apache.org/repos/asf/webservices/axis2/trunk/java</a></li>
</ul>
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 href="http://www.apache.org/dev/version-control.html"
target="_blank">Source Code Repositories page</a>.

<p>Once you have successfully installed Subversion, you can check out Axis2
trunk by following these steps:</p>
<ol type="1">
  <li>Run <strong>svn co &lt;repository URL&gt; axis2</strong> 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 "axis2".  The second parameter to the <strong>svn
    co</strong> 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 <strong>svn update</strong> command.</li>
  <li>If you would like to submit a patch, you can execute <strong>svn
    diff</strong> to create a unified diff for submission to the Axis2 JIRA
    issue tracker.</li>
</ol>
<a name="maven"></a>

<h2>Installing Maven 1</h2>

<p>Axis2's build is based on Maven 1.  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 1, please see
the <a href="http://maven.apache.org" target="_blank">Maven project page</a>.
To use Maven to build the Axis2 project, follow these simple steps:</p>
<ol type="1">
  <li>Install <a href="http://maven.apache.org/maven-1.x/"
    target="_blank">Maven1</a>. Refer to the <a
    href="http://maven.apache.org/maven-1.x/start/install.html">instructions</a>.
    <ul>
      <li>Create a MAVEN_HOME environment variable.</li>
      <li>Add MAVEN_HOME/bin to your PATH</li>
    </ul>
  </li>
  <li>Go to the axis2 folder in the command prompt and type
    <strong>maven</strong>.</li>
  <li>Maven will then automatically download all the jars, compile, test and
    build the Axis2 deliverables.</li>
</ol>
<a name="ide"></a>

<h2>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>
<ul>
  <li><strong>Intellij IDEA-</strong> type <strong>maven
    idea:multiproject</strong>. Generates the necessary IDEA .ipr, .iml and
    .iws project files</li>
  <li><strong>eclipse</strong>- type <strong>maven multiproject:goal
    -Dgoal=eclipse</strong> Then in Eclipse, setup a Classpath Variable for
    MAVEN_REPO, and 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.</li>
</ul>
</body>
</html>
