MavenでWARパッケージとOSGiバンドル作成を組み合わせるにはどうすればよいですか?

飯能フィエッツ:

私はOSGiバンドルの1つをwarパッケージ構造でデプロイして、StrutsによってWebアプリケーションとして認識されるようにしたいと考えています。私はMavenを使用しているため、WARパッケージが組み込まれており、OSGi互換のマニフェストを作成するためのMavenバンドルプラグインを持っています。

問題は、2つが連携しないため、バンドルプラグインがクラスファイルがサブフォルダーにclasses/あり、バンドルされたjarがにlib/あることを認識しないため、誤ったBundle-classpathヘッダーが作成されることです。手動で正しいヘッダーをに追加することもできますpom.xmlが、それを自動的に行わせたいのですが。どうやってやるの?

Pavol Juhos:

これを(多かれ少なかれ)達成する1つの方法は、OPS4J Wikiページで説明されています- 「他のプロジェクトタイプでのmaven-bundle-pluginの利点の取得」

依存関係の埋め込みとBundle-ClassPathディレクティブをに設定してpom.xml、WARプラグインで使用される場所と一致させることができますその後、maven-bundle-pluginは正しいマニフェストヘッダーを生成します。

maven-bundle-pluginの手順は次のようになります。

<instructions>
    <Bundle-ClassPath>.,WEB-INF/classes,{maven-dependencies}</Bundle-ClassPath>

    <Embed-Directory>WEB-INF/lib</Embed-Directory>
    <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
    <Embed-Transitive>true</Embed-Transitive>
    <!-- ... -->
</instructions>

ETA:このアプローチを使用したとき、2つの注目すべきことがわかりました。

  • バンドルプラグインはWEB-INF、マニフェストの目標が実行されたときにwarプラグインがそれらをまだ作成していないため、不足しているディレクトリについて文句を言うでしょう(後のフェーズでのみ実行されます)。
  • 実際のウェブアプリでは意味がありませんが、Bundle-ClassPathディレクティブに「。」を含める必要あります。そうしないと、バンドルプラグインがImport-Packagesヘッダーをめちゃくちゃにしてしまいます。これはGoogle経由のJIRAの問題で見つかりましたが、URLが見つかりません。

それ以外は問題なく動作します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パスと文字列をバッチで組み合わせるにはどうすればよいですか?

分類Dev

カバレッジ結果とtoxを組み合わせるにはどうすればよいですか?

分類Dev

Rでforループなしで条件付き整数シーケンスの組み合わせを作成するにはどうすればよいですか?

分類Dev

段落内でツールチップタグと段落マージンタグを組み合わせるにはどうすればよいですか?

分類Dev

これらの3つのSQLジョブを1つのSSISパッケージに組み合わせるにはどうすればよいですか?

分類Dev

LUAでパターンマッチングを行うときに、単語と数字を組み合わせるにはどうすればよいですか?

分類Dev

コマンドモードでTabキーを使用してマップの組み合わせを作成するにはどうすればよいですか?

分類Dev

複数のフィールドの組み合わせでグループバンドを追加するにはどうすればよいですか?

分類Dev

PLPGSQLでWITHをFORループと組み合わせて使用するにはどうすればよいですか?

分類Dev

標準パッケージ:個別の文字を組み合わせるにはどうすればよいですか?

分類Dev

継承と組み合わせてオブザーバーパターンを実現するにはどうすればよいですか?

分類Dev

Rを使用したforループで、「paste」コマンドと「ifelse」コマンドを組み合わせるにはどうすればよいですか。

分類Dev

Pythonでbase32をhotp(ワンタイムパスワード)と組み合わせて使用するにはどうすればよいですか?

分類Dev

パンダデータフレームで組み合わせの組み合わせを取得するにはどうすればよいですか?

分類Dev

findコマンドとgzipを組み合わせるにはどうすればよいですか

分類Dev

findコマンドとgzipを組み合わせるにはどうすればよいですか

分類Dev

シングルトンパターンを依存性注入と組み合わせて使用するにはどうすればよいですか?

分類Dev

ナビゲーションバーとページ付けを組み合わせるにはどうすればよいですか?

分類Dev

CPUとGPUグラフィックを組み合わせてパフォーマンスを向上させるにはどうすればよいですか?

分類Dev

promiseと静的コールバックを組み合わせてRamdaPipe関数を使用するにはどうすればよいですか?

分類Dev

子ノードをJSXと組み合わせるにはどうすればよいですか?

分類Dev

PHPとHTMLコードを組み合わせるにはどうすればよいですか?

分類Dev

Windowsパスとワイルドカードを組み合わせるにはどうすればよいですか?

分類Dev

カルカースカレンダーと組み合わせてnotify-sendコマンドを使用するにはどうすればよいですか?

分類Dev

Pythonメソッドチェーンを別のメソッドと組み合わせるにはどうすればよいですか

分類Dev

Laravelと複数のテーブルを組み合わせるにはどうすればよいですか?

分類Dev

コマンドパターンをJavaFXGUIと組み合わせるにはどうすればよいですか?

分類Dev

2つのテンソルを組み合わせてオーバーラップするにはどうすればよいですか?

分類Dev

フォルダパスとファイル名を組み合わせる関数を作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    パスと文字列をバッチで組み合わせるにはどうすればよいですか?

  2. 2

    カバレッジ結果とtoxを組み合わせるにはどうすればよいですか?

  3. 3

    Rでforループなしで条件付き整数シーケンスの組み合わせを作成するにはどうすればよいですか?

  4. 4

    段落内でツールチップタグと段落マージンタグを組み合わせるにはどうすればよいですか?

  5. 5

    これらの3つのSQLジョブを1つのSSISパッケージに組み合わせるにはどうすればよいですか?

  6. 6

    LUAでパターンマッチングを行うときに、単語と数字を組み合わせるにはどうすればよいですか?

  7. 7

    コマンドモードでTabキーを使用してマップの組み合わせを作成するにはどうすればよいですか?

  8. 8

    複数のフィールドの組み合わせでグループバンドを追加するにはどうすればよいですか?

  9. 9

    PLPGSQLでWITHをFORループと組み合わせて使用するにはどうすればよいですか?

  10. 10

    標準パッケージ:個別の文字を組み合わせるにはどうすればよいですか?

  11. 11

    継承と組み合わせてオブザーバーパターンを実現するにはどうすればよいですか?

  12. 12

    Rを使用したforループで、「paste」コマンドと「ifelse」コマンドを組み合わせるにはどうすればよいですか。

  13. 13

    Pythonでbase32をhotp(ワンタイムパスワード)と組み合わせて使用するにはどうすればよいですか?

  14. 14

    パンダデータフレームで組み合わせの組み合わせを取得するにはどうすればよいですか?

  15. 15

    findコマンドとgzipを組み合わせるにはどうすればよいですか

  16. 16

    findコマンドとgzipを組み合わせるにはどうすればよいですか

  17. 17

    シングルトンパターンを依存性注入と組み合わせて使用するにはどうすればよいですか?

  18. 18

    ナビゲーションバーとページ付けを組み合わせるにはどうすればよいですか?

  19. 19

    CPUとGPUグラフィックを組み合わせてパフォーマンスを向上させるにはどうすればよいですか?

  20. 20

    promiseと静的コールバックを組み合わせてRamdaPipe関数を使用するにはどうすればよいですか?

  21. 21

    子ノードをJSXと組み合わせるにはどうすればよいですか?

  22. 22

    PHPとHTMLコードを組み合わせるにはどうすればよいですか?

  23. 23

    Windowsパスとワイルドカードを組み合わせるにはどうすればよいですか?

  24. 24

    カルカースカレンダーと組み合わせてnotify-sendコマンドを使用するにはどうすればよいですか?

  25. 25

    Pythonメソッドチェーンを別のメソッドと組み合わせるにはどうすればよいですか

  26. 26

    Laravelと複数のテーブルを組み合わせるにはどうすればよいですか?

  27. 27

    コマンドパターンをJavaFXGUIと組み合わせるにはどうすればよいですか?

  28. 28

    2つのテンソルを組み合わせてオーバーラップするにはどうすればよいですか?

  29. 29

    フォルダパスとファイル名を組み合わせる関数を作成するにはどうすればよいですか?

ホットタグ

アーカイブ