blob: 40d07fd16ecb1e98119b21eebd8da7b0d6129edd [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Developing Apache Axis2</title>
</properties>
<body>
<section name="Introduction">
<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 name="Working with GitHub (Git)">
<p>
The Axis2 development team uses GitHub (Git) for source
control.
</p>
</section>
<section name="Checkout Axis2 from Git">
<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 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 type="1">
<li>Run <strong>git clone &lt;repository URL&gt;</strong> 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 "axis-axis2-java-core".</li>
</ol>
</section>
<section name="Installing Maven 3">
<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 href=
"http://maven.apache.org">Maven project page</a>.
To use Maven to build the Axis2 project, Please install
<a 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 name="Configuring your IDE">
<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>
<subsection name="Intellij IDEA">
<p>
Type <strong>mvn idea:idea</strong>. Generates the necessary IDEA .ipr, .iml
and .iws project files.
</p>
</subsection>
<subsection name="Eclipse">
<p>
We recommend using <a 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 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 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>
<pre>mvn -DskipTests=true install eclipse:eclipse</pre>
<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>
</subsection>
</section>
</body>
</document>