如何添加jar非osgi jar文件作为eclipse插件的依赖?

时间:2015-07-13 12:13:03

标签: eclipse-plugin osgi-bundle tycho

我正在使用tycho构建开发一个eclipse插件,它需要一些非osgi jar文件作为依赖。当我在我的pom文件中添加依赖项时,它不会在maven构建期间采用依赖项。   因此,我尝试使用以下插件创建一个包含所有必需依赖项的osgi包。

<plugin>
    <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>1.4.0</version>
            <extensions>true</extensions>
            <configuration>
                <manifestLocation>META-INF</manifestLocation>
                <instructions>
                    <Bundle-SymbolicName>Osgi-bundle</Bundle-SymbolicName>
                    <Bundle-Name>Osgi-dependency</Bundle-Name>
                    <Bundle-Version>1.0.0</Bundle-Version>
                    <Export-Package>*</Export-Package>
                    <Private-Package>com.foo.bundle</Private-Package>
                    <Bundle-Activator>com.foo.bundle.Activator</Bundle-Activator>
                    <Import-Package>*;resolution:=optional</Import-Package>

                    <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
                    <Embed-Directory>target/dependency</Embed-Directory>
                    <Embed-StripGroup>true</Embed-StripGroup>
                    <Embed-Transitive>true</Embed-Transitive>
                </instructions>
            </configuration>
        </plugin>

之后我已经将这个osgi包的依赖项提供给了eclipse插件。但是它仍然没有依赖。   我经历了很多网站。但是我无法在持续集成中获得这个maven构建的解决方案   但是,当我尝试使用现有jar创建新的插件项目并添加osgi包并导出插件时。它工作正常。但我需要连续构建。    请提供一些解决方案,将依赖项添加到eclipse插件项目中。

2 个答案:

答案 0 :(得分:5)

我通过创建p2存储库并将其部署在服务器中解决了这个问题。我创建了一个目标定义文件并将其链接到我的插件项目。

我们可以使用以下代码将非osgi jar转换为p2存储库。

     <build>
        <plugins>
         <plugin>
         <groupId>org.reficio</groupId>
    <artifactId>p2-maven-plugin</artifactId>
    <version>1.1.2-SNAPSHOT</version>
    <executions>
      <execution>
        <id>default-cli</id>
        <configuration>
          <artifacts>
            <!-- specify your depencies here -->
            <!-- groupId:artifactId:version -->
            <artifact>
              <id>org.slf4j:slf4j-log4j12:1.7.10</id>
            </artifact>
          </artifacts>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>

有关详细信息,本网站非常有帮助。 http://www.vogella.com/tutorials/EclipseTycho/article.html#convertjars

答案 1 :(得分:2)

一种可能的选择是使用maven-dependency-pluginconfigure classpath in manifest为OSGi包和do not forget to include jars in build将jar放入单独的文件夹。