<?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 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> | |
</section> | |
<section name="Working with Subversion (SVN)"> | |
<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">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">Source | |
Code Repositories page</a>. | |
</p> | |
</section> | |
<section name="Checkout Axis2 from Subversion"> | |
<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/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 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 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 type="1"> | |
<li>Run <strong>svn co <repository URL> 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> | |
</section> | |
<section name="Installing Maven 2"> | |
<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 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 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). Therefore it is recommended to execute the | |
<tt>eclipse:eclipse</tt> goal after the <tt>process-test-resources</tt> | |
phase. | |
</li> | |
<li> | |
There is a bug in the Maven Eclipse plugin version 2.8 that causes | |
it to fail on the Axis2 sources. However, version 2.7 is known to work. | |
</li> | |
</ul> | |
<p> | |
To summarize, use the following command to prepare the Axis2 sources for | |
import into Eclipse: | |
</p> | |
<pre>mvn process-test-resources org.apache.maven.plugins:maven-eclipse-plugin:2.7: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> |