Статус:
LEGACY(Наследуемость). Этот учебник относится к версиям Jira, которые достигли конца жизни.Коммерческие пользователи любого уровня получают доступ к исходному коду JIRA (примечание, владельцам оценочных лицензий не разрешен доступ к исходному коду JIRA). В этом разделе объясняется, как создать этот исходный код в развертываемом приложении JIRA.
Построение всей JIRA из исходного кода необходимо только в том случае, если вам необходимо внести существенные изменения в исходном коде JIRA и использовать подход WAR.
Вам не нужно перестраивать JIRA, если:
- Вам нужно изменить многие JSP-файлы. Файлы JSP являются файлами шаблонов для многих веб-страниц JIRA. Их также можно легко изменить непосредственно в автономном каталоге установки JIRA.
- Создайте плагин JIRA, который добавит функциональность JIRA. Для получения дополнительной информации ознакомьтесь с Руководством плагина JIRA. Изменения и усовершенствования функциональности JIRA часто могут выполняться с помощью JIRA-плагинов, не требуя модификации исходного кода JIRA.
- Повторная компиляция небольшого количества исходных файлов может быть выполнена с использованием инструкций в автономном каталоге внешнего источника.
Если вы хотите просмотреть исходный код JIRA Core, вы можете загрузить его с нашей основной исходной страницы загрузки Core. Вы должны иметь действительную лицензию JIRA и войти в my.atlassian.com с вашим атласским идентификатором. Вы можете загрузить исходный код JIRA Software (это не содержит исходный код JIRA Core) со исходной страницы загрузки программного обеспечения Software.
Прежде чем вы начнете
- Имейте в виду, что процедуры, описанные на этой странице, не включены в наши предложения по поддержке Atlassian, и поэтому Atlassian не может гарантировать их поддержку. Этот материал предоставляется только для вашей информации, и использование этого делается на свой страх и риск.
- Следующие инструкции были протестированы для JIRA 7.4.0.
- Существует известная проблема, когда источник конструктора Workflow отсутствует в исходном коде JIRA (см. JRA-29615). Помните об этом при создании JIRA из источника.
Создание файла JIRA WAR из версии JIRA Source
- Убедитесь, что у вас JDK 1.8 или выше.
- Загрузите Maven 3.2.5 или выше из архивов Apache на веб-сайте Maven.
- Убедитесь, что переменная среды JAVA_HOME установлена и указывает на вашу установку JDK. Например,
В Windows:
> set JAVA_HOME=[your JDK installation directory]
В качестве альтернативы переменные среды Windows можно настроить, выбрав
My Computer > Properties > Advanced > Environment Variables
«Мой компьютер»> «Свойства»> «Дополнительно»> «Переменные среды».
В Mac / Linux:
export JAVA_HOME=[your JDK installation directory]
- Извлеките Maven в соответствующее место в вашей операционной системе. Например,в Windows извлеките:
C:\apache-maven-3.2.5
В Mac / Linux извлеките:
/usr/local/apache-maven-3.2.5
- Добавьте каталог bin Maven на свой путь. Например,
в Windows:
> set PATH=C:\apache-maven-3.2.5\bin
Снова, Вы можете также установить это через
My Computer > Properties > Advanced > Environment Variables
Мой Компьютер> Свойства> Расширенно> Переменные среды.
В Mac / Linux:
export PATH=$PATH:/usr/local/apache-maven-3.2.5/bin
Сторонние библиотеки
Установите все следующие ограниченные сторонние (.jar) библиотеки в локальный репозиторий Maven (.m2), убедившись что вы загружаете версию, указанную ниже. Все эти библиотеки необходимы для успешного создания JIRA из источника. Если какая-либо из этих библиотек отсутствует, процесс сборки завершится неудачей.
Из-за ограничений лицензий мы не можем распространять эти библиотеки из общедоступного хранилища Maven из Atlassian. Если вы создали предыдущие версии JIRA из исходного кода, у вас могут быть некоторые из этих библиотек в вашем локальном репозитории Maven.
Библиотеки |
URL загрузки |
jms |
http://repository.jboss.org/nexus/content/groups/public-jboss/javax/jms/...
Maven groupId и artifactId: javax.jms: jms.
Версия: 1.1 |
jmxri and jmxtools |
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-arc...
Maven groupId и artifactId: com.sun.jmx: jmxri и com.sun.jdmk: jmxtools.
Версия: 1.2.1 |
jndi |
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-arc... (Загрузите JNDI 1.2.1 библиотеки классов в разделе «Именование и интерфейс директорий Java 1.2.1») Maven groupId и artifactId: jndi: jndi.
Версия: 1.2.1 |
jta |
http://www.oracle.com/technetwork/java/javaee/jta/index.html(Загрузите 'Class Files 1.0.1B')
Maven groupId и artifactId: jta: jta.
Версия: 1.0.1B |
ojdbc7 |
http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12... (Загрузите «ojdbc7.jar» в разделе «База данных Oracle12g Релиз 1 (12.1.0.1.0) Драйверы JDBC»)
Maven groupId и artifactId: com.oracle:ojdbc7.
Версия: 12.1.0.1 |
Чтобы установить библиотеки, загрузите каждую из них (используя ссылки выше) в каталог вашей файловой системы, например, downloads в своей домашней директории.
Библиотеки jmxri, jmxtools, jndi и jta загружаются как .zip-архивы, и прежде чем вы сможете установить их в локальный репозиторий Maven, вам нужно либо извлечь файл .jar ключа, либо изменить библиотеки в .jar-форму.
- Для jmxri и jmxtools:
- В Windows:
Откройте каталог загрузок downloads и извлеките файлы 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
- Для jndi:
- В Windows:
Откройте каталог загрузок downloads и извлеките файл jndi.jar из подкаталога lib загруженного файла jndi-1_2_1.zip.
- В Mac / Linux:
cd $HOME/Downloads
unzip jndi-1_2_1.zip lib/jndi.jar
- Для jta:
- В Windows:
Откройте каталог загрузок downloads и переименуйте файл jta-1_0_1B-classes.zip в jta-1_0_1B-classes.jar.
- В Mac / Linux:
cd $HOME/Downloads
mv jta-1_0_1B-classes.zip jta-1_0_1B-classes.jar
- Загрузите исходный архив JIRA Core с нашей основной страницы загрузок. Чтобы загрузить JIRA Software, перейдите к источнику загрузок программного обеспечения.
Чтобы получить доступ к этой странице, вам необходимо войти в систему как пользователю с коммерческой лицензией.
- Извлеките исходный архив JIRA в выбранное вами место
Это создаст исходный каталог JIRA с именем atlassian-jira-X.Y.Z-source, где X.Y.Z - ваша версия JIRA. Например, C: \ atlassian-jira-7.4.0-source.
- В исходном каталоге JIRA создайте каталог localrepo.
- Установите соответствующие разрешения для установки модулей узла. В исходном каталоге JIRA введите следующие команды:
Блок кода
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
- Установите библиотеки в локальный репозиторий Maven. В исходном каталоге JIRA введите следующие команды:
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
- Создайте JIRA, выполнив следующую команду Maven 2:
В Windows:
C:\atlassian-jira-7.4.0-source\> build.bat
В Mac / Linux:
> build.sh
Сценарий сборки загрузит несколько зависимостей из общедоступного хранилища Maven от Atlassian.
В редких случаях процесс сборки может завершиться неудачей, и вы можете получить ошибку, аналогичную той, которая встречается, когда атласский продукт не может установить плагин из общедоступного хранилища Maven из Atlassian. Эта проблема вызвана тем, что JVM не может получить доступ к своему файлу «cacerts» по умолчанию, который содержит сертификат, который доверяет общедоступному хранилищу Maven в Atlassian.
Чтобы решить эту проблему:
- Попробуйте одно из решений, упомянутых в статье базы знаний Confluence: невозможно установить плагин из-за Maven SSL.
- Если это не решит проблему, у вас может быть файл jssecacerts, который не содержит сертификата, который доверяет публичному хранилищу Maven в Atlassian. Если в вашей JVM присутствует файл jssecacerts, файл 'cacerts' может быть проигнорирован.
- Файл WAR, названный jira-webapp-dist-X.Y.Z.war (где X.Y.Z - ваша версия JIRA), будет создан в подкаталоге jira-project / jira-distribution / jira-webapp-dist / target подкатолога вашего извлеченного исходного каталога JIRA.
Например, если созданный выше подкаталог (извлечение исходного архива JIRA в выбранное вами место) был C: \ atlassian-jira-7.4.0-source, файл WAR будет найден в:
C:\atlassian-jira-7.4.0-source\jira-project\jira-distribution\jira-webapp-dist\target\jira-webapp-dist-7.4.0.war
Вы также можете найти распакованную версию исходной сборки JIRA в подкаталоге jira-project / jira-distribution / jira-webapp-dist / target / jira-webapp-dist-X.Y.Z вашего извлеченного исходного каталога JIRA.
- Созданный WAR-файл теперь можно установить на ваш сервер приложений для запуска только что созданного приложения JIRA.
Разработка с использованием коннекторов IDE
Узнайте о коннекторах IDE из исходного кода соединителя IDE и документации:
- Коннектор IDE Eclipse
- IDEA коннектор IDE
- Коннектор VS
Получение источника зависимостей JIRA
При создании JIRA из источника Maven автоматически извлекает двоичные (скомпилированные) зависимости, которые требуются во время процесса сборки, поэтому вам не нужно делать это вручную (за исключением упомянутых выше сторонних библиотек (сторонних библиотек)).
Стоит отметить, что исходное распределение JIRA не только поставляется с исходным кодом JIRA, но также включает в себя источник внутренних атласских проектов, от которых зависит JIRA (например, atlassian-bonnie, atlassian-core и т. д.). Внутренние атласские зависимости для распределения источников JIRA доступны в виде архивов на основе Maven. Для каждой зависимости будет создан архив на основе Maven с именем <dependencyname-version> -sources.jar. Единственной встроенной частью исходного пакета является сама JIRA, а не ее зависимости.
Другие зависимости доступны в публичном хранилище Atlassian. Источник этих зависимостей обычно доступен на веб-сайте библиотеки (попробуйте выполнить поиск по имени для библиотеки), или может быть идентифицирован в информации SCM соответствующей библиотеки.
Если у вас есть какие-либо вопросы относительно процесса сборки, попробуйте выполнить поиск / публикацию в Atlassian Community, которая контролируется сообществом разработчиков и как можно чаще Atlassian.
По материалам Atlassian JIRA Server Developer Building JIRA from source