В принципе, это очень полезная вещь (для PDE разработчиков). Но есть несколько неприятных моментов, которые мешают полноценной работе:(
Итак, мои впечатления от работы с Tycho:
Кому и зачем это нужно?
Только тем, кто занимается разработкой плагинов под Eclipse. И только тем, кто уже имеет небольшой опыт в этой области. Перед началом работы с tycho просто необходимо знать:а) что такое plug-in, update site и т.д.
б) структура плагина (директории, MANIFEST.MF, build.properties, plugin.xml)
в) структура Plug-in Project (что где лежит и как собирается).
Только тем, кому нужна сборка многих артефактов в автоматическом режиме. Если нужно собрать 1 пример, то tycho это бесполезная трата времени. Если есть куча плагинов, их надо собирать на CI сервере и довольно часто делать поставки готового продукта – то без
Что дает tycho
- Управление зависимостями. НО! Это отдельная тема, и о ней чуть позже.- Облегчает работу с PDE проектами. Проектные файлы (.project, .classpath и т.д.) не надо хранить в SVN.
- Возможность запустить CI сборки. В т.ч. на других платформах и на "безголовых" серверах.
Грабли и неудобства
- Невозможно работать с maven зависимостями. Т.е., то что вы написали в pom.xml идет лесом. Все зависимости берутся только с MANIFEST.MF и только с p2 репозитариев.- Работа с eclipse репозитариями (он же 'update site', он же "p2 repository") - удовольствие еще то. Нету возможности простмотреть что и какой версии лежит (в отличии от maven зависимостей ). Проблема с автоматическим получением исходников, и т.д. и т.п. Но самое главное...
- Очень большая задержка при сборке. Содержимое p2 репозитария описывается в небольшом архиве, который при каждой сборке перекачивается. Это значит что каждый раз плагин пытается выкачать примерно 10МБ архивов, распокавать, проанализировать все это, понять что ничего не обновилось и что на локальной машине уже есть все нужные плагины/бандлы и тооолько потом начинается сборка. Простенький проект (4 x plug-in, 1 x application) собирается порядка 1,5 минут. Компиляция и упаковка ~30 сек.
- Нету нормального понятия платформы.
- Невозможно сделать maven like структуру проекта. Файлы plugin.xml, MANIFEST.MF, build.properties обязательно должны лежать в корне проекта. Иконки, splash screen тоже в корне.
- Документация - очень скудная и разбросанная. Практически любые вопросы приводят на форумы с мегатоннами постов и т.д. Краткого и подробного описания goal-ов, FAQ нету (в отличии от стандартных maven плагинов)
Ну и напоследок
Для нормальной работы требуется:- Maven 3.x (2.x – не катит)
- M2Eclipse дополнение – (Maven OSGi Development – Tycho Project Configurations)
- Довольно хороший internet соединение.
- Крепкие нервы
Комментариев нет:
Отправить комментарий