2016-11-17 15 views
0

私のプロジェクトでは、mysqlデータベースに接続します。私のjarをjboss fuseにデプロイするには、deployフォルダにmysql-connector-javaを追加する必要があります。プロジェクトをパッケージ化して単一のjarファイルを提供する方法を知っていますか?あなたのバンドル内のjarファイルを埋め込むことパッケージ化mavenプロジェクトjboss fuse

答えて

2

は、次の手順を実行します

1)依存

<dependencies> 
    <dependency> 
     <groupId>com.your.company</groupId> 
     <artifactId>your-needed-jar</artifactId> 
     <version>1.3.4</version> 
    </dependency> 
<dependencies> 

2としてそれを宣言し)、それを埋め込むことmaven-bundle-pluginに知らせます。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <version>3.0.1</version> 
      <extensions>true</extensions> 
      <configuration> 
       <instructions> 
        <Embed-Dependency>your-needed-jar</Embed-Dependency> 
        <Import-Package> 
         eventually.unneded.pkg;resolution:="optional", 
         * 
        </Import-Package> 
        <Export-Package> 
         com.your.company.app.exportedpkg 
        </Export-Package> 
       </instructions> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

一般的なケースでは、この作業は、ランタイムクラスプロキシと(のORMのような)クラス世代の多くを行うライブラリの問題をクラスローディングがあるかもしれないが。

IMHOもっと良い方法は、JBoss Fuse自体からライブラリを利用できるようにすることです。そうするには、次のJBossなど/ヒューズディレクトリ
3)
1をJBossのヒューズlib /ディレクトリ
2にmysql-connector-java-xxx.javaをコピー)編集config.properties)今、あなたがいないリスト

org.osgi.framework.system.packages= \ 
... 
org.apache.karaf.diagnostic.core;version="2.4.0.redhat-621084", \ 
com.mysql.jdbc;version="xxx", \ 

com.mysql.jdbcパッケージを追加ライブラリをバンドルに埋め込む必要がある場合は、直接インポートすることができます。システムバンドル(ID:0)がエクスポートしています。

このPDFドキュメントは参考情報を提供します:Red Hat JBoss Fuse 6.2 Managing OSGi Dependencies

関連する問題