2016-10-20 10 views
2

私はMavenのを介して参照私のプロジェクトでは、多くのサードパーティのjarファイルを、持っている 'BND-のmaven-pluginの' https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin'bnd-maven-plugin'を使用してOSGiバンドルjarにサードパーティのjarファイル(解決可能)を追加するにはどうすればいいですか?

を使用してOSGiアプリケーションを開発しています。

「maven install」を使用してjarバンドルを作成すると、私はそれを取得します。フェリックスに展開すると、他の依存するサードパーティ製のjarファイルは解決されません。それは、 'Mavenのバンドル・プラグイン' 'BND-のmaven-pluginの' が http://www.lucamasini.net/Home/osgi-with-felix/creating-osgi-bundles-of-your-maven-dependencies

POMファイルで作業している

は、以下に示す:1以下

<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>XYZ.Models</groupId> 
    <artifactId>XYZ.Models</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 

     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.4</version> 
     </dependency> 


     <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.4</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>biz.aQute.bnd</groupId> 
       <artifactId>bnd-maven-plugin</artifactId> 
       <version>3.2.0</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>bnd-process</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>3.0.0</version> 
       <configuration> 
        <archive> 

         <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

は 'のPOMを働いていますのmaven-バンドル・プラグイン「0で

<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>XYZ.Models</groupId> 
    <artifactId>XYZ.Models</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 

     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.4</version> 
      <scope>provided</scope> 
     </dependency> 


     <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.4</version> 
      <scope>provided</scope> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <profiles> 
     <profile> 
      <id>create-osgi-bundles-from-dependencies</id> 
      <build> 
       <directory>${basedir}/bundles</directory> 
       <plugins> 

        <plugin> 
         <groupId>org.apache.felix</groupId> 
         <artifactId>maven-bundle-plugin</artifactId> 
         <version>2.0.1</version> 
         <extensions>true</extensions> 
         <executions> 
          <execution> 
           <id>wrap-my-dependency</id> 
           <goals> 
            <goal>wrap</goal> 
           </goals> 
           <configuration> 
            <wrapImportPackage>;</wrapImportPackage> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 
+0

ここに質問はないようです。 –

+0

こんにちは@NeilBartlettありがとうございました。 'bnd-maven-plugin'に関連するクエリをどこに投稿することができますか、このプラグインについてうまく説明された記事以外はほとんど見つかりません。 –

+1

それでは* maven-bundle-plugin *を使うのはどうですか? – stempler

答えて

1

マジックは<wrapImportPackage>;</wrapImportPackage>によって行われます。基本的には、生成されたjarファイル内のすべての依存関係をリソースとして追加し、バンドルクラスパスを設定します。

bnd-maven-plugin POMの命令は使用しません。あなたはbndファイルでそれをしなければなりません。 This tutorialはLiferayとGradleに固有ですが、-includeresource命令の例とバンドルクラスパスの設定方法を示します。

関連する問題