Строительство JIRA из источника

Если вы хотите просмотреть исходный код для справки, вы можете получить к нему доступ, если у вас есть лицензия на загрузку JIRA из My Atlassian.

Коммерческие пользователи любого уровня получают доступ к исходному коду JIRA (примечание, владельцам оценочных лицензий не разрешен доступ к исходному коду JIRA). В этом разделе объясняется, как создать этот исходный код в развертываемом приложении JIRA.

Построение всей JIRA из исходного кода необходимо только в том случае, если вам необходимо внести существенные изменения в исходный код JIRA и использовать подход WAR.

Вам не нужно перестраивать JIRA, если:

 

  • Вам нужно изменить многие JSP-файлы. Файлы JSP являются файлами шаблонов для многих веб-страниц JIRA. Их также можно легко изменить непосредственно в автономном каталоге установки JIRA.
  • Создайте плагин JIRA, который добавит функциональность JIRA. Для получения дополнительной информации ознакомьтесь с Руководством плагина JIRA. Изменения и усовершенствования функциональности JIRA часто могут выполняться с помощью JIRA-плагинов, не требуя модификации исходного кода JIRA.
  • Повторная компиляция небольшого количества исходных файлов может быть выполнена с использованием инструкций в автономном каталоге внешнего источника.

Существует известная проблема, из-за которой отсутствует источник конструктора рабочего процесса из исходного кода JIRA, который отслеживается в JRASERVER-29615. Источник конструктора рабочего процесса отсутствует в исходном коде, поставляемом с папкой исходного кода JIRA RESOLVED, - пожалуйста, держите это в уме при создании JIRA из источника.

Создание файла JIRA WAR из релиза источника JIRA

  1. Убедитесь, что у вас JDK 1.7 или выше, и у вас установлен клиент Subversion.
  2. Загрузите Maven 2.1.0 из архивов Apache на веб-сайте Maven.

Мы еще не протестировали построение JIRA из источника, используя Maven 3 в это время.

  1. Извлеките Maven в соответствующее место в вашей операционной системе. Например,в Windows извлеките:

C:\apache-maven-2.1.0

 

В Mac / Linux извлеките:


/usr/local/apache-maven-2.1.0

  1. Установите переменную среды M2_HOME. Например,

В Windows:


> set M2_HOME=C:\apache-maven-2.1.0

 

ЗОНА ЗЕЛЕНОЙ ЛАМПОЧКИ:

В качестве альтернативы переменные среды Windows можно настроить, выбрав «Мой компьютер >>Свойства >>« Дополнительные >> переменные среды ».

В Mac / Linux:


export M2_HOME=/usr/local/apache-maven-2.1.0

  1. Добавьте каталог bin Maven на свой путь. Например,

В Windows:


> set PATH=%M2_HOME%\bin

 

Вы можете установить это с помощью «Мой компьютер >>Свойства >> Дополнительные >> переменные среды » снова, если хотите.

В Mac / Linux:


export PATH=$PATH:$M2_HOME/bin

 

  1. Установите все следующие ограниченные библиотеки сторонних производителей (.jar) в локальный репозиторий Maven (.m2), убедившись что вы загружаете версию, указанную ниже. Все эти библиотеки необходимы для успешного создания JIRA из источника. Если какая-либо из этих библиотек отсутствует, процесс сборки завершится неудачей.

Из-за лицензионных ограничений мы не можем распространять эти сторонние библиотеки из общедоступного хранилища Maven из Atlassian. Если вы создали предыдущие версии JIRA из исходного кода, у вас могут быть некоторые из этих библиотек в вашем локальном репозитории Maven.

Библиотеки

 

Maven groupId и artifactId

 

Версия

 

URL-адрес загрузки

activation(активация)

javax.activation:activation

1.0.2

http://repository.jboss.org/nexus/service/local/repositories/deprecated/...

jms

 

 

javax.jms:jms

1.1

http://repository.jboss.org/nexus/content/groups/public-jboss/javax/jms/...

jmxri

 и

jmxtools

com.sun.jmx: jmxri

       а также

com.sun.jdmk: jmxtools

1.2.1

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-arc...

jndi

 

 

 

jndi:jndi

 

1.2.1

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-arc... (загрузите 'JNDI 1.2.1 Class Libraries')

jta

 

 

 

jta:jta

 

1.0.1B

http://www.oracle.com/technetwork/java/javaee/jta/index.html

(Загрузите 'Class Files 1.0.1B')

mail

 

 

 

javax.mail:mail

 

1.3.2

http://www.oracle.com/technetwork/java/javamail-1-3-2-138617.html

ojdbc6                 

com.oracle:ojdbc6

11.2.0.2.0

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-11201... (Загрузите «ojdbc6.jar» в  'Oracle Database 11g Release 2 (11.2.0.2.0) JDBC Drivers')

 

Чтобы установить эти ограниченные библиотеки сторонних разработчиков:

 

  • Загрузите каждый из них (из его ссылки выше) в каталог вашей файловой системы, например, загрузите в свою домашнюю папку.

(предупреждение) Библиотеки jmxri, jmxtools, jndi, jta и mail загружаются в формате .zipfiles и перед установкой этих библиотек в локальный репозиторий Maven:

  • из них должен быть извлечен файл .jar.
  • они должны быть в форме .jar.
  1. Для jmxri и jmxtools:
  • В Windows:

Используйте проводник Windows для входа в каталог загрузки и извлеките файлы jmxri.jar и jmxtools.jar из подкаталога jmx-1_2_1-bin \ lib файла jmx-1_2_1-ri.zip.

  • В Linux:


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

  1. Для jndi:
  • В Windows:

Используйте проводник Windows для входа в каталог загрузки и извлеките файл jndi.jar из подкаталога lib файла jndi-1_2_1.zip.

  • В Mac / Linux:


cd $HOME/Downloads
unzip jndi-1_2_1.zip lib/jndi.jar

  1. Для jta:
  • В Windows:

Используйте проводник Windows для входа в каталог загрузки и переименуйте файл jta-1_0_1B-classes.zip в jta-1_0_1B-classes.jar

  • В Mac / Linux:


cd $HOME/Downloads
mv jta-1_0_1B.zip jta-1_0_1B.jar

  1. Для почты:
  • В Windows:

Используйте проводник Windows для входа в каталог загрузки и извлеките файл mail.jar из подкаталога javamail-1.3.2 файла javamail-1.3.2.zip.

  • В Mac / Linux:


cd $HOME/Downloads
unzip javamail-1.3.2.zip javamail-1.3.2/mail.jar

 

  • После того, как вы загрузили, расширили и переименовали каждую из этих библиотек, установите их в свой локальный репозиторий Maven. Например, в каталоге загрузок введите следующие команды:

mvn install:install-file -DgroupId=javax.activation -DartifactId=activation -Dversion=1.0.2 -Dpackaging=jar -Dfile=activation-1.0.2.jar
mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=jms-1.1.jar
mvn install:install-file -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar -Dfile=jmxri.jar
mvn install:install-file -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar -Dfile=jmxtools.jar
mvn install:install-file -DgroupId=jndi -DartifactId=jndi -Dversion=1.2.1 -Dpackaging=jar -Dfile=jndi.jar
mvn install:install-file -DgroupId=jta -DartifactId=jta -Dversion=1.0.1 -Dpackaging=jar -Dfile=jta-1_0_1B-classes.jar
mvn install:install-file -DgroupId=javax.mail -DartifactId=mail -Dversion=1.3.2 -Dpackaging=jar -Dfile=mail.jar
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.2.0 -Dpackaging=jar -Dfile=ojdbc6.jar

  1. Загрузите исходный архив JIRA со страницы http://www.atlassian.com/software/jira/JIRASourceDownloads.jspa.

 Для доступа к этой странице вам необходимо войти в систему как пользователь с коммерческой лицензией.

 

  1. Извлеките исходный архив JIRA в выбранное вами место. Это создаст подкаталог с именем atlassian-jira-X.Y-source, где X.Y - ваша версия JIRA. Например, C: \ atlassian-jira-4.3-source
  2. Измените каталог в этот подкаталог и создайте JIRA, выполнив следующую команду Maven 2. Например,

В Windows:


C:\atlassian-jira-4.3-source\> build.bat

 В Mac / Linux:   


> build.sh

  1. Файл WAR, названный jira-webapp-dist-X.Y.war (где X.Y - ваша версия JIRA), будет создан в подкаталоге jira-project / jira-distribution / jira-webapp-dist / target из вашего извлеченного исходного каталога JIRA.

Например, если созданный выше подкаталог был C: \ atlassian-jira-4.3-source, файл WAR будет найден в:

C:\atlassian-jira-4.3-source\jira-project\jira-distribution\jira-webapp-dist\target\jira-webapp-dist-4.3.war

Открытая версия вашей исходной сборки JIRA также может быть найдена в подкаталоге jira-project / jira-distribution / jira-webapp-dist / target / jira-webapp-dist-X.Y вашего извлеченного исходного каталога JIRA.

  1. Созданный WAR-файл теперь можно установить на ваш сервер приложений для запуска только что созданного приложения JIRA. Для получения дополнительной информации см. Обзор конфигурации JIRA WAR. Для конкретных инструкций по установке вы можете следовать этим процедурам, пропуская этапы 1 и 3:
  • Установка JIRA на Tomcat 6.0 или 7.0

Разработка с использованием коннекторов IDE

Узнайте о разъемах IDE из документации коннектора IDE.

 

Получение источника зависимостей JIRA

При создании JIRA из источника Maven будет извлекать двоичные (скомпилированные) зависимости, которые он требует автоматически во время процесса сборки, поэтому вам не нужно делать это вручную (за исключением упомянутых выше сторонних библиотек).

Стоит отметить, что исходное распределение JIRA не только поставляется с исходным кодом JIRA, но также включает в себя источник внутренних атласских проектов, от которых зависит JIRA (например, atlassian-bonnie, atlassian-core и т. д.). Внутренние атласские зависимости для распределения источников JIRA доступны в виде архивов на основе Maven. Для каждой зависимости будет создан архив на основе Maven с именем <dependencyname-version> -sources.jar. Единственной встроенной частью исходного пакета является сама JIRA, а не ее зависимости.

Другие зависимости доступны в публичном хранилище Atlassian. Источник этих зависимостей обычно доступен на веб-сайте библиотеки (попробуйте погуглить по имени для библиотеки), или может быть идентифицирован в информации SCM соответствующей библиотеки.

 

Если у вас есть какие-либо вопросы относительно процесса сборки, попробуйте выполнить поиск / публикацию в Atlassian Answers, который контролируется сообществом разработчиков и как можно чаще Atlassian.

Компиляция патчей с одним классом

Если вы просто хотите скомпилировать один класс (возможно, сервис), у нас есть пошаговое руководство, как это сделать в IDEA. Подробнее см. Как сделать патч JIRA.

 

По материалам Atlassian JIRA Administrator's Guide: Building JIRA from Source