如何使用maven结构化项目调试eclipse内部的OSGi包

如何使用maven结构化项目调试eclipse内部的OSGi包,eclipse,maven-2,osgi,Eclipse,Maven 2,Osgi,我有一个maven项目,该库也应该是一个OSGi包,带有 声明性服务。我添加了OSGI-INF文件夹,其中包含service.xml src/java/resources,将添加到jar中。但是:当我以equinox项目的形式启动该项目时,我想检查服务是否已加载,我得到一个错误,即找不到OSGI-INF/service.xml。我猜eclipse在启动时不会将resources文件夹添加到类路径中 顺便说一句:MANIFEST-MF位于根文件夹中,pom.xml包含以下文本: <plugi

我有一个maven项目,该库也应该是一个OSGi包,带有 声明性服务。我添加了OSGI-INF文件夹,其中包含service.xml src/java/resources,将添加到jar中。但是:当我以equinox项目的形式启动该项目时,我想检查服务是否已加载,我得到一个错误,即找不到OSGI-INF/service.xml。我猜eclipse在启动时不会将resources文件夹添加到类路径中

顺便说一句:MANIFEST-MF位于根文件夹中,pom.xml包含以下文本:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
     <configuration>
      <archive>
        <manifestFile>META-INF/MANIFEST.MF</manifestFile>
      </archive>
    </configuration>
</plugin>

org.apache.maven.plugins
maven jar插件
META-INF/MANIFEST.MF
anbody知道如何告诉eclipse在哪里找到元数据文件吗?如果相关的话,我正在使用m2eclipse

提前谢谢
Hannes

我也有同样的问题,但我已经手动调整了POM.xml,以便将generate-target/classes/META-INF/**内容(MANIFEST.MF、property files、spring-XMLs等)复制到项目根文件夹(Eclipse PDE期望的)中:


maven资源插件
2.4.3
从maven同步pde元数据
包裹
复制资源
${basedir}/META-INF
目标/类/META-INF
假的
maven清洁插件
2.4.1
META-INF
**/*
假的
(当调用mvn clean时,我也会清理东西)它不是很有效,但它可以工作


Ps:您可能需要右键单击该项目并使其成为一个插件项目,以使其工作。

问题是Eclipse需要根目录中的OSGI-INF(以及META-INF)文件夹

我找到了一个关于如何解决这个问题的链接。

基本上,他们将OSGI-INF和META-INF文件夹放在src/main/resources中

然后,他们将src/main/resources文件夹设置为OSGI项目的根目录。因此Eclipse在根目录下有两个文件夹。 为了使Soure文件也可用,他们通过在.project文件中添加一个条目向src/main/java添加了一个

 <linkedResources>
    <link>
        <name>src</name>
        <type>2</type>
        <locationURI>PARENT-1-PROJECT_LOC/java</locationURI>
    </link>
</linkedResources>

src
2.
父-1-项目地址/爪哇
现在您只需要将.prject和.classpath文件复制到src/main/resources(您的新根目录)中,一切都应该正常工作

在写这篇文章的时候,我并没有自己进行测试,但在不久的将来会这样做

 <linkedResources>
    <link>
        <name>src</name>
        <type>2</type>
        <locationURI>PARENT-1-PROJECT_LOC/java</locationURI>
    </link>
</linkedResources>