Rate this page:
Status: | LEGACY. This tutorial applies to Jira versions that have reached end of life. |
Commercial users at any level receive access to Jira's source code (note, evaluation license holders are not permitted access to Jira's source code). This topic explains how to build this source code into a deployable Jira application.
Building all of Jira from source is only necessary if you need to make extensive modifications to Jira's source code and are using a WAR approach.
You should not need to rebuild Jira if:
Ensure the JAVA_HOME environment variable is set and points to your JDK installation. For example,
On Windows:
1
> set JAVA_HOME=[your JDK installation directory]
On Mac/Linux:
1
export JAVA_HOME=[your JDK installation directory]
Extract Maven to an appropriate location on your operating system. For example,
On Windows, extract to:
1
C:\apache-maven-3.2.5
On Mac/Linux, extract to:
1
/usr/local/apache-maven-3.2.5
Add Maven's bin directory to your path. For example,
On Windows:
1
> set PATH=C:\apache-maven-3.2.5\bin
On Mac/Linux:
1
export PATH=$PATH:/usr/local/apache-maven-3.2.5/bin
Install all of the following restricted third-party (.jar
) libraries to your local Maven repository (.m2
), ensuring that you download the version specified below. All of these libraries are required to successfully build Jira from source. If any of these libraries are missing, the build process will fail.
Libraries | Download URL |
---|---|
jms | http://repository.jboss.org/nexus/content/groups/public-jboss/javax/jms/jms/1.1/ Maven groupId and artifactId: javax.jms:jms. Version: 1.1 |
jmxri and jmxtools |
Maven groupId and artifactId: com.sun.jmx:jmxri and com.sun.jdmk:jmxtools. Version: 1.2.1 |
jndi |
(Download 'JNDI 1.2.1 Class Libraries' under 'Java Naming and Directory Interface 1.2.1') Maven groupId and artifactId: jndi:jndi. Version: 1.2.1 |
jta | http://www.oracle.com/technetwork/java/javaee/jta/index.html
(Download 'Class Files 1.0.1B') Maven groupId and artifactId: jta:jta. Version: 1.0.1B |
ojdbc7 | http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html (Download 'ojdbc7.jar' under 'Oracle Database 12g Release 1 (12.1.0.1.0) JDBC Drivers') Maven groupId and artifactId: com.oracle:ojdbc7. Version: 12.1.0.1 |
To install the libraries, download each one of them (using the links above) into a directory on your file system, for example downloads
in your home directory area.
For jmxri and jmxtools:
downloads
directory and extract the jmxri.jar
and jmxtools.jar
files from the jmx-1_2_1-bin\lib
subdirectory of the downloaded jmx-1_2_1-ri.zip
file.On Linux:
1 2
cd $HOME/Downloads
unzip jmx-1_2_1-ri.zip jmx-1_2_1-bin/lib/jmxri.jar jmx-1_2_1-bin/lib/jmxtools.jar
For jndi:
downloads
directory and extract the jndi.jar
file from the lib
subdirectory of the downloaded jndi-1_2_1.zip
file.On Mac/Linux:
1 2
cd $HOME/Downloads
unzip jndi-1_2_1.zip lib/jndi.jar
For jta:
downloads
directory and rename the jta-1_0_1B-classes.zip
file to jta-1_0_1B-classes.jar
.On Mac/Linux:
1 2
cd $HOME/Downloads
mv jta-1_0_1B-classes.zip jta-1_0_1B-classes.jar
This will create a Jira source directory with the name atlassian-jira-X.Y.Z-source
, where X.Y.Z is your version of Jira. For example, C:\atlassian-jira-7.4.0-source
.
In the Jira source directory, create the localrepo
directory.
Set appropriate permissions for installing the node modules. In your Jira source directory, enter the following commands:
Code block
1 2 3
chmod a+x jira-project/conf/frontend/node
chmod a+x ./jira-project/jira-components/jira-plugins/jira-post-upgrade-landing-page-plugin/src/main/frontend/bin/node
chmod a+x ./jira-project/jira-components/jira-webapp/src/main/resources/johnson-page/bin/node
Install libraries into your local Maven repository. In your Jira source directory, enter the following commands:
1 2 3 4 5 6
mvn install:install-file -Dmaven.repo.local=localrepo -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=$HOME/Downloads/jms-1.1.jar
mvn install:install-file -Dmaven.repo.local=localrepo -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar -Dfile=$HOME/Downloads/jmx-1_2_1-bin/lib/jmxri.jar
mvn install:install-file -Dmaven.repo.local=localrepo -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar -Dfile=$HOME/Downloads/jmx-1_2_1-bin/lib/jmxtools.jar
mvn install:install-file -Dmaven.repo.local=localrepo -DgroupId=jndi -DartifactId=jndi -Dversion=1.2.1 -Dpackaging=jar -Dfile=$HOME/Downloads/jndi.jar
mvn install:install-file -Dmaven.repo.local=localrepo -DgroupId=jta -DartifactId=jta -Dversion=1.0.1 -Dpackaging=jar -Dfile=$HOME/Downloads/jta-1_0_1B-classes.jar
mvn install:install-file -Dmaven.repo.local=localrepo -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=$HOME/Downloads/ojdbc7.jar
Build Jira by executing the following Maven 2 command:
On Windows:
1
C:\atlassian-jira-7.4.0-source\> build.bat
On Mac/Linux:
1
> build.sh
A WAR file called jira-webapp-dist-X.Y.Z.war
(where X.Y.Z is your version of Jira), will be built in the jira-project/jira-distribution/jira-webapp-dist/target
subdirectory of your extracted Jira source directory.
For example, if the subdirectory created above (Extract the Jira source archive to a location of your choice) was C:\atlassian-jira-7.4.0-source
, the WAR file will be found in:C:\atlassian-jira-7.4.0-source\jira-project\jira-distribution\jira-webapp-dist\target\jira-webapp-dist-7.4.0.war
Learn about the IDE Connectors from the IDE Connector source code and documentation:
When building Jira from source, Maven will automatically fetch the binary (compiled) dependencies that it requires during the build process, so you don't have to do it manually (with the exception of the third-party libraries mentioned above (Third-party libraries)).
It is worth noting that 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.). The internal Atlassian dependencies for Jira's source distribution are made available as Maven-based archives. There will be a Maven-based archive for each dependency, named <dependencyname-version>-sources.jar. The only buildable part of the source package is Jira itself, not its dependencies.
Other dependencies are available on Atlassian's public repository. The source of these dependencies is usually available on the library's website (try googling for the library name), or can be identified in the SCM information of the relevant library.
If you have any questions regarding the build process, try searching/posting to the Atlassian Community, which is monitored by the development community, and by Atlassian as often as possible.
Rate this page: