<?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 <repository URL></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 > Import > Existing Projects | |
into Workspace > 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> |