Commercial users receive access to JIRA source. This documentation shows how to build the JIRA source back into an application that can be deployed.
You would only be interested in this documentation if you are making modifications to the JIRA source code. Changes to JSP files do not require rebuilding JIRA. Also, you should be aware of the possibilities the plugin system affords — often changes can be developed and packaged as a plugin without requiring core source modifications.
Building JIRA WAR from JIRA Source release
- Ensure you have JDK 1.5 or higher.
- Ensure you have the Subversion client installed.
- Download Maven 1.0.x from http://maven.apache.org. You will also need to install our patched ant-optional-1.5.3-1.jar file and copy it into your maven1/lib directory. Otherwise you will get
loader constraints violated when linking org/w3c/dom/Node classerrors when running unit tests. Also see JRA-21553.
- Extract Maven:
- Set MAVEN_HOME:
- Add Maven's bin directory to your path:
- Download and configure Maven 2.0.x as described on Maven Requirements.
- Download JIRA Source zip from http://www.atlassian.com/software/jira/JIRASourceDownloads.jspa. You will need to log in as a user with a commercial license to access this page.
- Extract the JIRA Source zip somewhere, say c:\Dev\testing.
- Your c:\Dev\testing should look somewhat like:
- Change into the jira\ subdirectory, and build using Maven by executing the following command: If you would like to build a closed WAR file, then do not use the command displayed above. You will need to run the following maven command instead:
- Confirm that the open .war has been created in .\target\atlassian-jira suitably configured Servlet 2.3+ compliant app server at this directory, and run JIRA. You should now be able to point a
Developing using the IDE Connectors
Learn about the IDE Connectors from the IDE Connector Documentation.
Building the Atlassian source dependencies
JIRA's source distribution not only ships with JIRA's source code, it also includes the source of the internal Atlassian projects that JIRA depends on (e.g. atlassian-bonnie, atlassian-core, etc.). These dependencies are included in JIRA in binary format when you build the JIRA source (they are downloaded from the Atlassian maven repository).
You can, however, compile the provided source to generate the binaries yourself. These projects use a mix of Maven 1 and Maven 2 build systems to compile and package their source. You can tell a project uses Maven 1 if the project contains a file called 'project.xml' in the top level directory. If a project uses Maven 2, it will contain a file called 'pom.xml' in the top level directory.
Building a Maven 1 project you will invoke 'maven jar', whereas for a Maven 2 project you will invoke 'mvn package'. In order to run the 'mvn' command you will have to install Maven 2. Please follow the general instructions regarding setting up a development environment. Please note that you will also have to add the Atlassian Maven 2 repository to your Maven 2 configuration. To do this you will need to edit your
settings.xml as described in Maven Requirements.
You should also install the following dependencies ("mail", "activation" and "transaction" APIs) that are not re-distributable before attempting a build:
Obtaining the source of JIRA's dependencies
Most of JIRA's dependencies are either shipped in binary (compiled) form with the source distribution, or are available on Maven's public repository. Maven will fetch the dependencies that it requires automatically during the build process, so you do not have to do it manually. Hence, you do not need the source of every dependency to build JIRA from source. However, sometimes you might want to "look inside" these dependencies. If so, this section is for you.
The source distribution of JIRA is shipped with a
project.xml file. All of JIRA's dependencies are listed inside this file. Most of the dependencies are open source libraries but some are Atlassian's code. All of the Atlassian code is included in the source distribution. The source of the other dependencies is usually available on the library's website (try googling for the library name).
In some cases JIRA uses unofficial 'snapshot' releases of a library, sometimes additionally patched to fix bugs or add features. In these cases the library source can be obtained from Atlassian's repository, at http://repository.atlassian.com/ dependencyId /distributions/, where dependencyId is the dependency name found in the
For example, source for the dependency:
can be found at http://repository.atlassian.com/javacvs/distributions/javacvs-20050531-patched-src.tar.gz. If source modifications were made, a patch is usually available at http://repository.atlassian.com/ dependencyId /patches/
If you have any questions regarding the build process, please post to the JIRA Development Forum, which is monitored continually by the development community, and by Atlassian as often as possible.