如何使用p2-maven-plugin将插件和功能打包到OSGI包中

时间:2015-06-01 13:23:25

标签: java maven eclipse-plugin m2eclipse

我创建了一个插件和功能项目(用于插件)。我正在使用tycho(maven)来构建它。我能够成功构建它。现在我想打包到osgi包(plugin.jar,feature.jar,artifacts.jar,content.jar)。为此,我使用 p2-maven-plugin 但我不知道如何将plugin.jar和feature.jar指定到osgi项目的pom.xml中(创建osgi包)。

下面是我创建osgi包的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.exililty.tycho</groupId>
  <artifactId>com.exility.plugin.osgi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
<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> </id>
                </artifact>
                 <artifact>
                  <id> </id>
                </artifact>
                
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <pluginRepositories>
    <pluginRepository>
      <id>reficio</id>
      <url>http://repo.reficio.org/maven/</url>
    </pluginRepository>
  </pluginRepositories>

</project>

我可以插入插件和功能jar作为工件吗?如何将插件jar指定到pom.xml中。请帮忙!

1 个答案:

答案 0 :(得分:1)

p2-maven-plugin用于创建具有分类插件/功能的P2 Target存储库,而不是OSGi包。我希望这能说明这个maven插件的目的是什么。如果您的任务是创建P2 Target存储库,那么您可以按照p2-maven-plugin示例中的描述定义添加功能:

<configuration>
    <artifacts>
        <artifact><id>org.apache.commons:commons-lang3:3.1</id></artifact>
    </artifacts>
    <features>
        <artifact>
            <id>org.reficio:test.feature:1.0.0</id>
            <source>false</source>
            <transitive>false</transitive>
        </artifact>
    </features>
</configuration>