0

私の目標は、マルチモジュール Maven プロジェクト用の features.xml を作成し、さまざまな機能に必要なすべての jar ファイルを収集することです。mvn: ではなく file: 経由でバンドル jar を解決する必要があります。

features:generate-features-xml ゴールを使用してみました。まず、プロパティ ファイルの形式がどのように見えるべきかについてのドキュメントはありません。次に、mvn によってすべて解決されるバンドルを作成します。

<feature name='spring-jms' version='3.1.0.RELEASE'>
  <bundle>mvn:org.springframework/spring-tx/3.1.0.RELEASE</bundle>
  <feature version='3.1.0.RELEASE'>spring-core</feature>
  <bundle>mvn:org.codehaus.jackson/jackson-core-asl/1.9.9</bundle>
  <bundle>mvn:org.springframework/spring-jms/3.1.0.RELEASE</bundle>
</feature>

私の最初の質問は、 mvn: ではなく file: 経由でバンドルにアクセスする方法はありますか? 例えば

<bundle>file:some/path/spring-tx.jar</bundle>  

または何でも。

2 番目の質問: 必要なすべての jar ファイルを収集する最善の方法は何ですか? 私はmavenアセンブリプラグインを使ってきましたが、それは最適ではないようです。

ありがとう。

4

1 に答える 1

2

ファイル形式を使用して機能ファイルのバンドルをアドレス指定できますが、Maven機能プラグインはMaven解決のみをサポートします。

アプリケーションのエンドユーザーがインターネットにアクセスできないことはよくあることです。それでも、Maven解像度を使用できます。あなたが持っている2つの主なオプションがあります:

  • karaf featuresプラグインを使用して、フィーチャーからMavenリポジトリーを作成します。次に、このディレクトリをorg.ops4j.pax.url.mvn.cfgのMavenリポジトリのリストに追加できます。
  • karaf 2.3以降では、karファイルを使用できます。karファイルは、Mavenリポジトリのzipであり、内部の機能ファイルへのポインターです。karファイルをkarafのデプロイフォルダーに入れると、機能がインストールされます

これの良いところは、機能ファイルが常にアーティファクトのMavenIDに基づいていることです。あなたはあなたがあなたの瓶を届ける方法を変えるだけです。したがって、インターネットまたはMavenリポジトリにアクセスできる場合は、機能ファイルを使用するだけで済みます(開発中など)。

于 2013-02-22T11:17:51.123 に答える