Как я могу использовать локальный каталог в качестве целевой платформы для сборки Tycho? - PullRequest
11 голосов
/ 25 ноября 2011

Я хочу создать RCP-приложение с целевой платформой, которая является каталогом с Maven / Tycho.
Теперь у меня есть некоторые проблемы, которые не могут быть разрешены зависимости.

Internal error: java.lang.RuntimeException: "No solution found because the  
problem is unsatisfiable.": ["Unable to satisfy dependency from  
de.test.prototype.main 1.0.0.qualifier to bundle org.eclipse.ui 0.0.0.",  
"Unable to satisfy dependency from de.test.prototype.main 1.0.0.qualifier  
to bundle org.eclipse.core.runtime 0.0.0.", ...

В целом существует несколько проблем с разрешением зависимостей, поэтому я думаю, что Tycho не может использовать мою целевую платформу.
Я прочитал http://wiki.eclipse.org/Tycho/Target_Platform и там есть следующее примечание:

Типы расположения «Каталог», «Установка» и «Возможности» не поддерживаются. »

Итак, мой вопрос: как заставить Tycho использовать мою целевую платформу, хотя это каталог?

Ответы [ 3 ]

8 голосов
/ 19 июля 2012

Tycho требуется метаданные p2 для разрешения зависимостей в вашей сборке.Вот почему нельзя использовать папку только с пакетами и функциями.

Однако вы можете преобразовать папку в репозиторий p2 с помощью приложения Features and Bundles Publisher .После того, как вы это сделаете, вы можете ссылаться на папку как на местоположение «Software Site» через file: URL в вашем файле определения цели.Тогда Tycho также сможет его использовать.

Обратите внимание, однако, что сначала вам следует спросить себя, действительно ли вам нужно это сделать: действительно ли функции и пакеты в вашей папке действительно недоступныв любом репозитории p2?Если это так, настоятельно рекомендуется не запускать на них Feature and Bundles Publisher (или вы можете вызывать нарушения основных предположений p2, которые могут привести к проблемам, которые обычно видны только вашим пользователям).Вместо этого вы должны ссылаться на эти функции и пакеты непосредственно из репозитория p2, например, через местоположение «Software Site» в вашем целевом файле.

3 голосов
/ 04 августа 2012

Создайте репо из ваших плагинов и загрузите его на http-сервер (например, apache) и укажите свой tycho pom на репо

Этот пример для mac и eclipse 4, но с некоторыми настройкамиможет заставить его работать на других платформах.

сначала создайте папку src на рабочем столе.В этой папке создайте 2 папки: плагины функций

Теперь скопируйте свои плагины в папку плагинов и функции в папке функций.

Затем создайте пустую папку назначения где-нибудь (загрузите эту папку на свой сервер)

для этого примера я создал обе мои папки на рабочем столе, чтобы сделать его простым

Затем я делаю это:

destination folder : /Users/yves/Desktop/repo
source folder : /Users/yves/Desktop/src

Terminal app : cd /Applications/Eclipse4

./eclipse  -debug -consolelog -nosplash -verbose -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:/Users/yves/Desktop/repo -artifactRepository file:/Users/yves/Desktop/repo -source /Users/yves/Desktop/src -compress -append -publishArtifacts

В папке репо теперь есть репоВаша целевая платформа.Загрузите его, настройте пом и соберите.

1 голос
/ 27 апреля 2012

Согласно моему опыту, Tycho поддерживает только онлайн p2 репозитории. Он отказывается работать с репо p2, расположенным на локальном диске. Странно, но это правда.

...