Сборка BE4 и BE-SQL — различия между версиями

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск
(Новая страница: «== Сборка BE-SQL == BE-SQL — полноценный Maven-проект. Смотрите настройку доступа в Maven [https://sites.google…»)
 
 
(не показано 8 промежуточных версии 2 участников)
Строка 1: Строка 1:
 
== Сборка BE-SQL ==
 
== Сборка BE-SQL ==
  
BE-SQL — полноценный Maven-проект. Смотрите настройку доступа в Maven [https://sites.google.com/a/developmentontheedge.com/wiki/home/sistemnoe-administrirovanie/maven-repozitorij-nexus во внутренней вики]. Все этапы сборки выполняются с помощью maven, включая компиляцию javacc-грамматики. Для сборки новой версии:
+
BE-SQL — полноценный Maven-проект. Смотрите настройку доступа в Maven(Nexus) [https://sites.google.com/a/developmentontheedge.com/wiki/home/sistemnoe-administrirovanie/maven-repozitorij-nexus во внутренней вики]. Все этапы сборки выполняются с помощью maven, включая компиляцию javacc-грамматики. Для сборки новой версии:
  
 
* Выкачать проект dote/dote_modules
 
* Выкачать проект dote/dote_modules
Строка 11: Строка 11:
 
* Запустить mvn deploy.
 
* Запустить mvn deploy.
  
Деплоить одну и ту же версию дважды не выйдет. Если что-то пошло не так, увеличивайте номер версии снова и деплойте заново.
+
После этого новая версия попадёт в Nexus-репозиторий и будет доступна для других разработчиков. Деплоить одну и ту же версию дважды не выйдет. Если что-то пошло не так, увеличивайте номер версии снова и деплойте заново.
  
 
Чтобы воспользоваться новой версией BE-SQL в BE4, вам придётся выпустить также новую версию BE4 с обновлёнными зависимостями (см. ниже).
 
Чтобы воспользоваться новой версией BE-SQL в BE4, вам придётся выпустить также новую версию BE4 с обновлёнными зависимостями (см. ниже).
  
 
== Структура BE4 ==
 
== Структура BE4 ==
 +
 +
Проект BE4 состоит из двух частей. Исходный код по историческим причинам лежит вместе, но разделён по проектам:
 +
 +
* BE4 Core: ядро BE4, необходимое для работы через [[Использование ant|Ant]]. Состоит из пакетов (включая подпакеты):
 +
** com.beanexplorer.enterprise.be4core
 +
** com.beanexplorer.enterprise.metadata
 +
* BE Eclipse IDE: плагины для Eclipse, реализующие пользовательский интерфейс. Включает в себя все остальные пакеты и зависит от BE4 Core.
 +
 +
BE4 Core содержит меньше зависимостей и является полноценным Maven-проектом (все зависимости есть в Maven). Pom-файл расположен в be4/pom/pom.xml.
 +
 +
BE Eclipse IDE собирается через Eclipse с помощью Ivy. При этом некоторые зависимости присутствуют явно в виде jar (каталоги be4/lib и be4/plugins — кое-что из BioUML), но большая часть зависимостей выкачивается автоматом через Ivy. Конфигурация ivy в be4/src/ivy.xml. Проект в Eclipse настроен так, что зависимости скачиваются в каталог be4/dep и потом оттуда используются. По факту с точки зрения сборки BE Eclipse IDE включает в себя BE4 Core.
 +
 +
== Добавление/обновление зависимости в BE4 ==
 +
 +
Рассмотрим как обновить версию зависимости BE4 на примере BE-SQL. Предположим, требуется обновить версию BE-SQL с 0.0.24 на 0.0.25.
 +
 +
1. Обновите версию в be4/pom/pom.xml (необходимо для сборки BE4 Core; этот шаг не нужен для зависимостей, которые требуются только BE Eclipse IDE):
 +
 +
  <dependency>
 +
  <groupId>com.developmentontheedge</groupId>
 +
  <artifactId>sql</artifactId>
 +
  <version>0.0.24</version> --> 0.0.25
 +
  </dependency>
 +
 +
2. Обновите версию в be4/src/ivy.xml (необходимо для компиляции BE Eclipse IDE)
 +
 +
  <dependency org="com.developmentontheedge" name="sql" rev="0.0.24" />
 +
  -->
 +
  <dependency org="com.developmentontheedge" name="sql" rev="0.0.25" />
 +
 +
3. Обновите версию в be4/META-INF/MANIFEST.MF в разделе Bundle-ClassPath (необходимо для работы BE Eclipse IDE):
 +
 +
dep/sql-0.0.24.jar, -->  dep/sql-0.0.25.jar,
 +
 +
Следует делать все изменения одновременно. Даже если вы не используете Eclipse-версию, пользователи Eclipse могут пострадать, если ограничиться первым пунктом.
 +
 +
После любых изменений зависимостей, как и после изменений исходного кода, необходимо выпустить новую версию BE4, чтобы другие пользователи могли увидеть ваши изменения (см. ниже). Исключение составляют только пользователи BE Eclipse IDE, которые не обновляются с Update-site, а используют режим с двумя Eclipse-инсталляциями. Желательно со временем перевести этих пользователей на Eclipse Update site.
 +
 +
== Сборка версии BE4 ==
 +
 +
Предположим, последняя выпущенная версия 0.1.46 и мы хотим выпустить версию 0.1.47.
 +
 +
1. Сборка Maven-артефакта. Аналогично BE-SQL: идём в файл be4/pom/pom.xml, меняем версию <code><nowiki><version>0.1.46</version></nowiki></code> на <code><nowiki><version>0.1.47</version></nowiki></code> и запускаем команду mvn deploy. После этого BE4 попадает в Nexus.
 +
 +
2. Обновление версии по умолчанию. Ant-скрипты по умолчанию пользуются версией BE4, которая указана в файле be4/src/be4version.properties, который выглядит так:
 +
 +
BE4_VER=0.1.46
 +
 +
Чтобы все пользователи перешли на новую версию, замените здесь на 0.1.47 и закоммитьте. Если вдруг в новой версии обнаружатся критические проблемы, достаточно будет просто вернуть здесь версию на стабильную. Также при запуске любого ant-таргета можно указать версию явно. Например, так: <code>ant -DBE4_VER=0.1.46</code>. Таким образом можно сравнивать поведение в разных версиях.
 +
 +
Обратите внимание, что хотя Java-код BE4 используется из стабильных сборок, опубликованных через Maven (код из Git не используется), ftl-макросы используются из be4/macro. Поэтому там ошибки повлияют на работу коллег.
 +
 +
3. Обновление Eclipse Update Site. Для этого делаются следующие шаги:
 +
 +
3.1. Обновляем версию в be4/META-INF/MANIFEST.INF в строчке Bundle-Version:
 +
 +
Bundle-Version: 0.1.46
 +
 +
3.2. Импортируем в Eclipse проекты be4/.project, be4/com.beanexplorer.be4.feature/.project, be4/com.beanexplorer.be4.site/.project
 +
 +
3.3. Открываем /com.beanexplorer.be4.feature/feature.xml в Feature Manifest Editor.
 +
 +
3.4. Во вкладке Overflow меняем версию 0.1.46.qualifier на 0.1.47.qualifier.
 +
 +
3.5. Во вкладке Plugins нажимаем правой кнопкой на com.beanexplorer.enterprise.eclipse, Synchronize Versions, Copy versions from plug-in and fragment manifests, Finish
 +
 +
3.6. Сохраняем feature.xml (обязательно сейчас, не позже!)
 +
 +
3.7. Открываем /com.beanexplorer.be4.site/site.xml в Site Manifest Editor
 +
 +
3.8. Во вкладке Site Map разворачиваем beanexplorer4 и удаляем features/com.beanexplorer.be4.feature_0.1.46.qualifier.jar. Затем нажимаем Add feature, пишем com.beanexplorer и выбираем в списке com.beanexplorer.be4.feature.
 +
 +
3.9. Сохраняем и нажимаем Build All.
 +
 +
3.10. После этого каталог be4/com.beanexplorer.be4.site является полноценным update site'ом Eclipse. Скопируйте его в \\logrus.dote.ru\pub2\be4\com.beanexplorer.be4.site (лучше старую версию переименовать, чтобы если что можно было откатиться.
 +
 +
== beanexplorerdev, beanhelpers для be4 ==
 +
 +
  cd BeanExplorer/release/   
 +
  mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanhelpers -Dversion=0.0.3 -Dpackaging=jar -Dfile=beanhelpers.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/releases/ -DrepositoryId=dote   
 +
  mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanexplorerdev -Dversion=0.0.3 -Dpackaging=jar -Dfile=beanexplorer_dev.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/releases/ -DrepositoryId=dote
 +
 +
TODO может деплоить snapshots?
 +
 +
  mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanhelpers -Dversion=0.0.4-SNAPSHOT -Dpackaging=jar -Dfile=beanhelpers.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/snapshots/ -DrepositoryId=dote
 +
  mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanexplorerdev -Dversion=0.0.4-SNAPSHOT -Dpackaging=jar -Dfile=beanexplorer_dev.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/snapshots/ -DrepositoryId=dote

Текущая версия на 20:35, 18 декабря 2017

Сборка BE-SQL

BE-SQL — полноценный Maven-проект. Смотрите настройку доступа в Maven(Nexus) во внутренней вики. Все этапы сборки выполняются с помощью maven, включая компиляцию javacc-грамматики. Для сборки новой версии:

  • Выкачать проект dote/dote_modules
  • Зайти в dote_modules/sql
  • Изменить номер версии в pom.xml:
<version>0.0.24</version>
  • Запустить mvn deploy.

После этого новая версия попадёт в Nexus-репозиторий и будет доступна для других разработчиков. Деплоить одну и ту же версию дважды не выйдет. Если что-то пошло не так, увеличивайте номер версии снова и деплойте заново.

Чтобы воспользоваться новой версией BE-SQL в BE4, вам придётся выпустить также новую версию BE4 с обновлёнными зависимостями (см. ниже).

Структура BE4

Проект BE4 состоит из двух частей. Исходный код по историческим причинам лежит вместе, но разделён по проектам:

  • BE4 Core: ядро BE4, необходимое для работы через Ant. Состоит из пакетов (включая подпакеты):
    • com.beanexplorer.enterprise.be4core
    • com.beanexplorer.enterprise.metadata
  • BE Eclipse IDE: плагины для Eclipse, реализующие пользовательский интерфейс. Включает в себя все остальные пакеты и зависит от BE4 Core.

BE4 Core содержит меньше зависимостей и является полноценным Maven-проектом (все зависимости есть в Maven). Pom-файл расположен в be4/pom/pom.xml.

BE Eclipse IDE собирается через Eclipse с помощью Ivy. При этом некоторые зависимости присутствуют явно в виде jar (каталоги be4/lib и be4/plugins — кое-что из BioUML), но большая часть зависимостей выкачивается автоматом через Ivy. Конфигурация ivy в be4/src/ivy.xml. Проект в Eclipse настроен так, что зависимости скачиваются в каталог be4/dep и потом оттуда используются. По факту с точки зрения сборки BE Eclipse IDE включает в себя BE4 Core.

Добавление/обновление зависимости в BE4

Рассмотрим как обновить версию зависимости BE4 на примере BE-SQL. Предположим, требуется обновить версию BE-SQL с 0.0.24 на 0.0.25.

1. Обновите версию в be4/pom/pom.xml (необходимо для сборки BE4 Core; этот шаг не нужен для зависимостей, которые требуются только BE Eclipse IDE):

 <dependency>
  <groupId>com.developmentontheedge</groupId>
  <artifactId>sql</artifactId>
  <version>0.0.24</version> --> 0.0.25
 </dependency>

2. Обновите версию в be4/src/ivy.xml (необходимо для компиляции BE Eclipse IDE)

 <dependency org="com.developmentontheedge" name="sql" rev="0.0.24" />
 -->
 <dependency org="com.developmentontheedge" name="sql" rev="0.0.25" />

3. Обновите версию в be4/META-INF/MANIFEST.MF в разделе Bundle-ClassPath (необходимо для работы BE Eclipse IDE):

dep/sql-0.0.24.jar, -->  dep/sql-0.0.25.jar,

Следует делать все изменения одновременно. Даже если вы не используете Eclipse-версию, пользователи Eclipse могут пострадать, если ограничиться первым пунктом.

После любых изменений зависимостей, как и после изменений исходного кода, необходимо выпустить новую версию BE4, чтобы другие пользователи могли увидеть ваши изменения (см. ниже). Исключение составляют только пользователи BE Eclipse IDE, которые не обновляются с Update-site, а используют режим с двумя Eclipse-инсталляциями. Желательно со временем перевести этих пользователей на Eclipse Update site.

Сборка версии BE4

Предположим, последняя выпущенная версия 0.1.46 и мы хотим выпустить версию 0.1.47.

1. Сборка Maven-артефакта. Аналогично BE-SQL: идём в файл be4/pom/pom.xml, меняем версию <version>0.1.46</version> на <version>0.1.47</version> и запускаем команду mvn deploy. После этого BE4 попадает в Nexus.

2. Обновление версии по умолчанию. Ant-скрипты по умолчанию пользуются версией BE4, которая указана в файле be4/src/be4version.properties, который выглядит так:

BE4_VER=0.1.46

Чтобы все пользователи перешли на новую версию, замените здесь на 0.1.47 и закоммитьте. Если вдруг в новой версии обнаружатся критические проблемы, достаточно будет просто вернуть здесь версию на стабильную. Также при запуске любого ant-таргета можно указать версию явно. Например, так: ant -DBE4_VER=0.1.46. Таким образом можно сравнивать поведение в разных версиях.

Обратите внимание, что хотя Java-код BE4 используется из стабильных сборок, опубликованных через Maven (код из Git не используется), ftl-макросы используются из be4/macro. Поэтому там ошибки повлияют на работу коллег.

3. Обновление Eclipse Update Site. Для этого делаются следующие шаги:

3.1. Обновляем версию в be4/META-INF/MANIFEST.INF в строчке Bundle-Version:

Bundle-Version: 0.1.46

3.2. Импортируем в Eclipse проекты be4/.project, be4/com.beanexplorer.be4.feature/.project, be4/com.beanexplorer.be4.site/.project

3.3. Открываем /com.beanexplorer.be4.feature/feature.xml в Feature Manifest Editor.

3.4. Во вкладке Overflow меняем версию 0.1.46.qualifier на 0.1.47.qualifier.

3.5. Во вкладке Plugins нажимаем правой кнопкой на com.beanexplorer.enterprise.eclipse, Synchronize Versions, Copy versions from plug-in and fragment manifests, Finish

3.6. Сохраняем feature.xml (обязательно сейчас, не позже!)

3.7. Открываем /com.beanexplorer.be4.site/site.xml в Site Manifest Editor

3.8. Во вкладке Site Map разворачиваем beanexplorer4 и удаляем features/com.beanexplorer.be4.feature_0.1.46.qualifier.jar. Затем нажимаем Add feature, пишем com.beanexplorer и выбираем в списке com.beanexplorer.be4.feature.

3.9. Сохраняем и нажимаем Build All.

3.10. После этого каталог be4/com.beanexplorer.be4.site является полноценным update site'ом Eclipse. Скопируйте его в \\logrus.dote.ru\pub2\be4\com.beanexplorer.be4.site (лучше старую версию переименовать, чтобы если что можно было откатиться.

beanexplorerdev, beanhelpers для be4

 cd BeanExplorer/release/    
 mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanhelpers -Dversion=0.0.3 -Dpackaging=jar -Dfile=beanhelpers.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/releases/ -DrepositoryId=dote    
 mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanexplorerdev -Dversion=0.0.3 -Dpackaging=jar -Dfile=beanexplorer_dev.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/releases/ -DrepositoryId=dote

TODO может деплоить snapshots?

 mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanhelpers -Dversion=0.0.4-SNAPSHOT -Dpackaging=jar -Dfile=beanhelpers.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/snapshots/ -DrepositoryId=dote
 mvn deploy:deploy-file -DgroupId=com.beanexplorer -DartifactId=beanexplorerdev -Dversion=0.0.4-SNAPSHOT -Dpackaging=jar -Dfile=beanexplorer_dev.jar -Durl=http://nexus.dote.ru/nexus/content/repositories/snapshots/ -DrepositoryId=dote