среда, 6 августа 2014 г.

Сборка WSO2 ESB + BPS из исходников на Windows 7 x64

Исходная точка - официальный сайт WSO2. Коротко и ясно. Можно начинать.

Процитирую однако несколько воодушевляющих высказываний людей, которые уже проходили этот путь:

But most probably you will not be able to build all the products well at the same time and it will take much time as well.


Has anyone here managed to build WSO2 (orbit/kernel/platform 4.0.0) from source?
After having spent three days, more or less, trying to build this project from source I'm about to give up.

 I really don't think it is intentionally hard to build. ... It took me quite a few days to get a working build in my spare time.

Загрузка кода

Устанавливаем TortoiseSVN:
https://docs.wso2.com/display/ESB481/Installation+Prerequisites

Если у нас доступ в интернет через прокси, то настраиваем прокси SVN:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-settings.html

Загружаем код из репозитория, как указано в инструкции по установке, т.е. для версии ESB 4.8.1:
https://svn.wso2.org/repos/wso2/carbon/platform/tags/turing-chunk07

Как выяснилось, одной этой базы кода недостаточно. Потребуется ещё Kernel и Orbit, потому что их нужно собрать перед сборкой ESB, чтобы подтянулись все нужные библиотеки. Если этого не сделать, то мы можем столкнуться с ошибкой:

[ERROR] error: error reading D:\wso2_local_repository\org\apache\axis2\mex\1.6.1-wso2v2\mex-1.6.1-wso2v2-impl.jar; error in opening zip file
Она возникает из-за того, что вместо кода JAR-файл загружается HTML какой-нибудь веб-странички. Распаковать этот мусор конечно же не удаётся.

Будут и другие ошибки. Бороться с ними приёмами чёрной магии бесполезно. Правильная магия описана на этой странице.

Чтобы грузить Kernel и Orbit нужно ещё знать правильные числа. В таблице релизов мы найдём их без труда:


Теперь нам известно, откуда загружать:
https://svn.wso2.org/repos/wso2/carbon/orbit/tags/4.2.0/
https://svn.wso2.org/repos/wso2/carbon/kernel/tags/4.2.0/



У меня было три папки для загрузки всего этого добра из SVN: esb, orbit и kernel.

Установка JAVA

На странице требований к окружению (Installation Prerequisites) мы читаем, что для сборки из исходников нужно установить Java Standard Edition версии 1.6.24 или более позднюю, но только не 1.7. Видим рядом ссылку, которая ведёт на сайт Oracle. Берём JDK версии 1.6.45 ибо нам нужно компилировать не натыкаясь на устранённые в более позндних версиях проблемы:

Java SE Development Kit 6u45

Кому-то будет ненужно, но мне перед запуском пришлось удалить папки шестой версии из C:\Program Files\Java, ибо разных джав у меня на машине скопилось видимо-невидимо.
 
Запускаем скаченный установщик Java.

Для пущей надёжности я ещё открыл regedit и изменил
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion
на 1.6.0_45
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\CurrentVersion
на 1.6.0_45
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\CurrentVersion
на 1.6.0_45

Не мне вам рассказывать, как добавлять новую переменную окружения в Windows 7. Нам нужно создать переменную с названием JAVA_HOME. В моём случае значение этой переменной: C:\Program Files\Java\jdk1.6.0_45



Теперь добавим похожим образом путь к бинарникам Java в самоё начало переменной Path.



То есть, нам нужно в самое начало приписать:
%JAVA_HOME%\bin;

Давайте ещё убедимся, что переменная Path не содержит пути до каких-нибудь других джав, установленных на машине. (Стремимся к тому, чтобы команда java -version выдала нам нашу версию 1.6.0_45, хотя это, может быть, и излишне.)

Для проверки печатаем в командной строке:
java -version
echo %JAVA_HOME%
echo %Path%



Установка Apache Maven

Для сборки кода нам потребуется Apache Maven 3.0.x (см. документацию). Не нужно пытаться использовать более современные версии, если вам дорого ваше время и жизнь.

Загружаем версию 3.0.5 с сайта проекта. Страница загрузок оказалась очень полезной, поскольку снизу на ней есть чёткие инструкции по установке.

Файл apache-maven-3.0.5-bin.zip можно поместить в произвольную директорию. После распаковки архива вносим путь в переменную среды M2_HOME.

Создаём ещё одну переменную среды M2 и записываем в неё: %M2_HOME%\bin

В третью переменную среды MAVEN_OPTS записываем:
-Xms768m -Xmx3072m -XX:MaxPermSize=1200m

В конец переменной Path дописываем:
;%M2%

WSO2 предупреждает, что без последней настройки могут появиться ошибки из-за нехватки памяти:

Set the environment variable  MAVEN_OPTS="-Xms768m -Xmx3072m -XX:MaxPermSize=1200m" to avoid the Maven OutOfMemoryError.

Если у нас доступ к интернету через прокси-сервер, то нужно внести его параметры в файл conf\settings.xml

В этом же файле настроек прописываем путь к папке, в которую Apache Maven будет складывать библиотеки. Можно и не прописывать, но в моём случае папка .m2 оказалась на бэкап-сервере где-то в глубинах корпоративной сети (я наисвно пытался найти её на локальной машине). Используем тэг:
<localRepository>D:\wso2_local_repository</localRepository>

Проверяем в командной строке mvn --version:



Сборка ESB

Сборку сервисной шины предприятия ESB будем выполнять при помощи команды mvn clean install с ключом -Dmaven.test.skip=true, чтобы не запускать тесты. Тесты требуют определённого окружения, которого у нас нет.

Заранее постелим соломку. Отключим Integration Test BPS Reporting, как советуют разработчики:

> Please comment out the report generation piece (this is used for code

> coverage) and build the rest for the moment. We can commit that change

> until Krishantha finds time to fix it.
Иначе мы столкнёмся с ошибкой, характерной для Windows и связанной с ограничением на длину команды в командной строке.

Command execution failed. *Cannot run program "java"
Поскольку в релизе chunk-07 помимо ESB содержится BPS, то нужно либо отключить компиляцию BPS, либо выключить Test BPS Reporting и в ESB, и в BPS. Пойдём по второму пути.

В корневой папке, в которую мы выкачали исходный код ESB из SVN, находим подпапку products\bps\3.1.0 и закомментируем в файле pom.xml, как показано ниже:

<!--module>modules/integration</module-->

В файле products\bps\3.2.0\pom.xml:

<!--module>modules/integration</module-->

В файле products\esb\4.8.1\pom.xml:

<!--module>modules/integration</module-->

В файле products\esb\4.8.0\pom.xml:

<!--module>modules/integration</module-->  

Короче, отключил везде, где можно. Но если вам нравится думать, то вы можете сделать иначе ;).

Переходим теперь непосредственно к сборке и компиляции.

Последовательно запускаем команду
mvn clean install -Dmaven.test.skip=true
в следующих папках:


orbit
kernel


Открыл esb\product-releases\chunk-07\pom.xml
В качестве родительского указан файл esb\pom.xml:

<parent>  
    <groupId>org.wso2.carbon</groupId>
    <artifactId>platform-parent</artifactId>
    <version>4.2.0</version>  
    <relativePath>../../parent/pom.xml</relativePath>
</parent>

Поэтому запускаем и в ней
mvn clean install -Dmaven.test.skip=true









Потом в папках:
esb\product-releases\chunk-07\dependencies
esb\product-releases\chunk-07\service-stubs
esb\product-releases\chunk-07\components
esb\product-releases\chunk-07\features
esb\product-releases\chunk-07




Результат сборки ESB расположен здесь:
esb\4.8.1\modules\distribution\target\wso2esb-4.8.1.zip

Проверка работоспособности


Скопируем архив и распакуем его. Запустим wso2esb-4.8.1\bin\wso2server.bat



Веб-интерфейс шины доступен по локальному адресу:
https://192.168.4.104:9443/carbon/
Логин: admin
Пароль: admin



Заработало.

P.S.: Предполагаю, что количество шагов можно уменьшить. У вас какое мнение?





















Комментариев нет:

Отправить комментарий