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

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

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

  1. Eclipse Orbit や ServiceMix 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からのパッケージへの依存関係を解決しました。