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