Я создал плагин eclipse, который требует определенных возможностей в своем манифесте:
Require-Capability: osgi.service;filter:="(osgi.service=my.client.SessionService)"
Моя целевая платформа содержит другой пакет, предоставляющий эту возможность. Когда я пытаюсь создать это с помощью Tycho, я получаю следующее исключение:
[ERROR] Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle my.client.rxp cannot be resolved
[ERROR] Resolution errors:
[ERROR] Bundle my.client.rxp - Missing Constraint: Require-Capability: osgi.service; filter="(osgi.service=my.client.SessionService)"
Кажется, что Tycho не справляется с возможностями OSGi. Все работает нормально, как только я добавляю пакет, который предоставляет возможность в качестве обязательного пакета, к моему плагину eclipse. Но это не имеет смысла, так как плагин eclipse не должен иметь никакой зависимости от другого пакета реализации. Как можно использовать возможности OSGi в сборке Tycho?
effective:=active
для вашего требования, чтобы она не мешала разрешению пакета самой OSGi Framework. Подобные сервисные зависимости на самом деле предназначены только как подсказки для Resolver, такого как p2 (если бы он их только поддерживал!) или в Bndtools (который их поддерживает). - person Neil Bartlett   schedule 17.03.2014