Eclipse Juno не видит пакет, созданный с помощью Apache Felix Maven-Bundle-Plugin
Вот моя проблема: я сейчас разрабатываю простое RAP-приложение в Eclipse Juno. Мне нужно было использовать некоторые внешние библиотеки, поэтому я создал пакет с felix maven-bundle-plugin, где я хранил некоторые библиотеки. После этого я скопировал этот пакет в каталог dropins Eclipse. К сожалению, я не могу добавить свой пакет в свой проект в MANIFEST.MF (Зависимости -> Обязательные плагины -> Добавить), потому что Eclipse его не видит.
Я проверил свой пакет в консоли OSGI, и все, кажется, в порядке. Статус РАЗРЕШЕН. Я могу запустить его вручную без каких-либо ошибок. Также команда diag ничего не показывает.
Когда я пытался добавить свой пакет в Eclipse Indigo, все работало нормально - я мог использовать его в своем проекте.
У вас есть идеи, что может быть не так? Я связываю свой pom.xml для maven-bundle-plugin:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
<groupId>org.myproject</groupId>
<artifactId>some-dependencies</artifactId>
<version>1.0.0</version>
<name>Dependencies</name>
<description>Dependency bundle</description>
<repositories>
<repository>
<id>maven-restlet</id>
<name>Public online Restlet repository</name>
<url>http://maven.restlet.org</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
</dependency>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet.ext.json</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.osgi.core</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>com.google.common.*,org.restlet.*,org.json.*</Export-Package>
<Import-Package>!sun.misc,*</Import-Package>
<Bundle-SymbolicName>some-dependencies</Bundle-SymbolicName>
<Eclipse-BuddyPolicy>global</Eclipse-BuddyPolicy>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
2 ответа
Если вы разрабатываете приложение RAP, вы скомпилируете его с целевой платформой RAP, а не с запущенной платформой Eclipse. Поэтому пакет, добавленный в среду выполнения Eclipse, не будет доступен для проектов в вашей рабочей области. Вы должны добавить свой пакет на целевую платформу.
Вы можете найти краткое описание целевых платформ в Руководстве разработчика RAP.
Чтобы PDE мог распознать сгенерированный файл манифеста, вы должны использовать плагин M2e eclipse. и вы должны установить эту упаковку в вашем ПОМ:
<packaging>bundle</packaging>