6

OSGiバンドルを作成し、それをEclipseに統合しようとしています。バンドルを作成するためにmaven-pax-pluginを使用しています。これらは私が従うステップです

paxを使用してosgiプロジェクトを作成します

mvn org.ops4j:maven-pax-plugin:create-project -DgroupId=org.sonatype.mcookbook -DartifactId=osgi-project -Dversion=1.0-SNAPSHOT

バンドルを作成します

mvn pax:create-bundle -Dpackage=org.sonatype.mcookbook -Dname=osgi-bundle -Dversion=1.0-SNAPSHOT

次に、MavenプロジェクトをEclipse(ファイル/インポート/既存のMavenプロジェクト)にインポートしようとすると、2番目のステップで作成されたバンドルプロジェクトで常にこのエラーが発生します

maven-pax-plugin:1.5:compile (1 error)
   Execution default-compile, in org.sonatype.mcookbook/pom.xml
maven-pax-plugin:1.5:testCompile (1 error)
   Execution default-testCompile, in org.sonatype.mcookbook/pom.xml

エラーの1つを選択すると、説明に

No marketplace entries found to handle Execution default-compile, in org.sonatype.mcookbook/pom.xml in Eclipse.  Please see Help for more information.

エラーを無視してプロジェクトをインポートすると、これがeclipseの不満です。

Plugin execution not covered by lifecycle configuration: org.ops4j:maven-pax-plugin:1.5:compile (execution: default-compile, phase: compile)

誰かがこれを見たことがありますか?それを修正する方法はありますか?私はこのチュートリアルに従っていますが、Eclipseとの統合を追加しています。ただし、Mavenを使用してビルドし、Eclipseをまったく使用しない場合は、すべて正常に機能することに注意してください。問題はeclipse/m2eにあります。

EclipseIndigoSR2とm2e1.0.200を使用しています

4

2 に答える 2

7

生成されたPOMのコメントに従ってこの問題を取り除き、以下<extensions>true</extensions>のmaven-bundle-pluginに移動します。

  ...
  <plugins>
    <plugin>
      <groupId>org.ops4j</groupId>
      <artifactId>maven-pax-plugin</artifactId>
      <version>1.4</version>
      <!--
         | enable improved OSGi compilation support for the bundle life-cycle.
         | to switch back to the standard bundle life-cycle, move this setting
         | down to the maven-bundle-plugin section
        -->
      <!-- WAS HERE -->
    </plugin>
    <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <version>1.4.3</version>
      <!--
       | the following instructions build a simple set of public/private
       | classes into an OSGi bundle
      -->
      <extensions>true</extensions> <!-- MOVED HERE :-) -->
      <configuration>
    ...

次に、プロジェクトを更新し (Project Explorer でプロジェクト名を右クリック: Maven -> Update Project...)、ビルドが完了するのを待ち、エラーがなくなります。

それが役立つことを願っています!

于 2012-07-23T09:33:42.113 に答える
3

新しい m2eclipse バージョンでは、ビルドに影響するすべてのプラグインが m2eclipse プラグインを使用してサポートされている必要があります。そのため、maven-pax-plugin はまだサポートされていません。これは基本的にほとんどの maven プラグインで発生するため、私はまだ古い m2eclipse バージョンを使用しています。残念ながら、古いバージョン 0.12 のダウンロードは最近削除されたようです。そのため、おそらく maven-pax-plugin がサポートされるまで待つ必要があります。

于 2012-07-13T10:16:15.257 に答える