2013-06-02 21 views
0

这是我的问题:我目前正在Eclipse Juno中开发简单的RAP应用程序。我需要使用一些外部库,因此我使用felix maven-bundle-plugin创建了一个包含一些库的包。之后,我将该软件包复制到Eclipse dropins目录中。不幸的是,我无法将我的包添加到MANIFEST.MF中的项目中(依赖项 - >需要的插件 - >添加),导致Eclipse没有看到它。Eclipse Juno不会“看到”使用Apache felix创建的包maven-bundle-plugin

我检查了我的包在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> 

回答

0

如果你正在开发一个RAP的应用程序,你会编译它针对RAP目标平台,而不是运行Eclipse平台。因此,添加到Eclipse运行时的软件包将无法用于工作区中的项目。您必须将您的软件包添加到目标平台。

您可以在RAP Developer's Guide的目标平台上找到简要说明。

+0

问题解决!我创建了新的“插件从现有的JAR档案”我的捆绑JAR),然后将这个链接到我的项目并使用新的库是没有问题的。 –

0

要使PDE识别生成的清单文件,必须使用M2e eclipse插件。 ,你必须在你设置此包装POM:

<packaging>bundle</packaging> 
+0

包装是好的,但不知何故,我的pom.xml粘贴在这里后失去了几行:(我会尝试你的建议与m2e插件。 –