Introduction
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.
Working with GitHub (Git)
The Axis2 development team uses GitHub (Git) for source control.
Checkout Axis2 from Git
To check out the latest version of Axis2 from the Foundation's GitHub repository, you must use the following URL:
- If you are a committer or not a committer, the link is the same: https://github.com/apache/axis-axis2-java-core
Once you have successfully installed Git, you can check out Axis2 trunk by following these steps:
- Run git clone <repository URL> where the repository URL from the previous list.
- This step will check out the latest version of the Axis2 Java codebase to a directory named "axis-axis2-java-core".
Installing Maven 3
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 Maven project page. To use Maven to build the Axis2 project, Please install Maven2 and follow instructions here - Quick Guide to Maven for Axis 2.0.
Configuring your IDE
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.
Intellij IDEA
Type mvn idea:idea. Generates the necessary IDEA .ipr, .iml and .iws project files.
Eclipse
We recommend using maven-eclipse-plugin to import the Axis2 sources into Eclipse. This works best with the following combinations of versions and settings:
-
Early versions of Maven 2 have issues with non standard packagings
(
bundle
,aar
andmar
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. -
By default, the Maven Eclipse plugin only imports generated sources
and resources created during the
generate-sources
andgenerate-resources
phases, but fails to locate them if they are generated during thegenerate-test-sources
andgenerate-test-resources
phases. This is due to a limitation in Maven 2 (see MECLIPSE-37 for more information). Executing theeclipse:eclipse
goal after theprocess-test-resources
phase is also not enough because of MDEP-259. The best is to execute it after theinstall
phase. TheskipTests
property can be used to skip the execution of the unit tests (maven.test.skip
is not appropriate here because it also skips some of the goals configured in thegenerate-test-sources
andgenerate-test-resources
phases).
To summarize, use the following command to prepare the Axis2 sources for import into Eclipse:
mvn -DskipTests=true install eclipse:eclipse
As usual, before importing the projects into Eclipse, check that a Classpath Variable
for M2_REPO
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.