2

MavenでOSGIサービスを構築するのに問題があります。私のpom.xml

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.0.1</version>
    <extensions>true</extensions>
    <configuration>
        <instructions>
          <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
          <Service-Component>OSGI-INF/activator.xml</Service-Component>
          <Import-Package>org.osgi.framework</Import-Package>
        </instructions>
    </configuration>
</plugin>

Mavenインストールでビルドすると、.jarファイルが生成されますが、OSGI-INFフォルダーが存在しません。私はEclipseとm2eプラグインを使用しています。OSGI-INFフォルダーが.jarファイルにないのはなぜですか?

4

1 に答える 1

2

したがって、bndの内部アノテーションフレームワークを使用する場合は、felixscrプラグインへの依存関係は必要ありません。

    <dependency>
        <groupId>biz.aQute</groupId>
        <artifactId>bndlib</artifactId>
        <version>1.50.0</version>
    </dependency>

これを行うと、maven-bundle-pluginへのこの構成オプションを使用して宣言型サービスxmlを生成するようにbndに指示できます。

    <Service-Component>*</Service-Component>

それはあなたのためにOSG-INFのものを生成します。注釈は少し異なります。ここに文書化されています:http ://www.aqute.biz/Bnd/Components

また、あなたは輸入品が本当にファンキーに見えるので、私はこれをお勧めします:

    <instructions>
         <Export-Package>{local-packages};version="${project.version}"</Export-Package>
         <Import-Package>*</Import-Package>
         <Private-Package>{local-packages}</Private-Package>
         <Service-Component>*</Service-Component>
    </instructions>
于 2012-06-14T18:34:49.747 に答える