Configuring Dependencies
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

サードパーティライブラリパッケージの依存関係の解決

アプリケーションは、複数のOSGiモジュールに依存できます。 Javaパッケージの依存関係を解決するのは難しい場合があります。 すべてのパッケージがOSGi JARで配布されるのが理想的ですが、多くのパッケージは従来のライブラリ(非OSGi JAR)にのみ存在しています。 サードパーティの非OSGi JARへの依存関係は、いくつかの方法で解決できます。

  1. Eclipse OrbitServiceMix Bundlesなどのプロジェクトは、数百の従来の Java ライブラリを OSGi モジュールに変換します。 パッケージを含むOSGi JARが見つかる場合があります。

    パッケージと一緒にモジュールを見つけたら、それをデプロイして compileOnly依存関係を追加する。 パッケージのモジュールがない場合は、次の手順に進みます。

  2. 使用しているライブラリパッケージをLiferayがすでにエクスポートしているかどうかを確認します。 Liferay がそれらをエクスポートする場合は、 エクスポートされたサードパーティパッケージの手順に従って依存関係を調整してください。

  3. 非OSGi JARをcompileInclude依存関係として追加します。

    dependencies {
        compileInclude group: 'org.apache.shiro', name: 'shiro-core', version: '1.1.0'
    }
    

    Liferay の compileInclude 構成は推移的—で、ライブラリとそのすべての依存関係をモジュール JAR の lib フォルダに埋め込み、JAR をモジュールの Bundle-ClassPath マニフェスト ヘッダーに追加します。

    compileInclude 構成では、推移的な オプションの依存関係がダウンロードされません。 オプションの依存関係からのパッケージが必要な場合は、別のサードパーティライブラリパッケージと同じようにパッケージを解決してください。

  4. モジュールをコンパイルします。

  5. モジュールをデプロイし、未解決のパッケージの依存関係を確認します。

  6. モジュールが使用していないパッケージに未解決の依存関係がある場合は、そのパッケージのインポートをブロックします。

    Import-Package:\
        !foo.bar.baz,\
        *
    

    文字はパッケージのインポートを否定します。 *文字は、モジュールが明示的に参照するすべてのパッケージを表します。 *をリストの最後に置くと、Bndはモジュールが参照するすべてのパッケージをインポートします。

WAR ファイルに、 Liferay がすでにエクスポートしているサードパーティパッケージの異なるバージョンが必要な場合は、 Import-Package: リストでそのパッケージを指定します。 そのパッケージがOSGiモジュールにある場合は、それをデプロイします。

Liferay DXP は WAR をデプロイするときにそれを WABに変換し、デプロイ時に既にエクスポートされているサードパーティの JAR を WAB から削除します。 Liferayエクスポートとは異なるバージョンのデプロイメントを強制するには、そのパッケージの非OSGi JARの名前を、WABジェネレーターが除外する JARとは異なる名前に変更しJARをプロジェクトに埋め込みます

  非OSGi JARからのパッケージへの依存関係を解決しました。