Documentation

WABから除外されたJAR

Liferayで生成されたWebアプリケーションバンドル\(WAB\)からは、Liferayがすでにエクスポートしているパッケージを含むサードパーティーのJARが削除されます。 追加のJARから同じサードパーティーパッケージをデプロイすると、デバッグが難しい奇妙なエラーが発生する可能性があります。 Liferayの module.framework.web.generator.excluded.paths portal propertyは、除外されたJARを指定しています。 デフォルトのmodule.framework.web.generator.excluded.pathsプロパティからの抜粋を以下に示します。

module.framework.web.generator.excluded.paths=\
    WEB-INF/lib/ant.jar,\
    WEB-INF/lib/asm-debug-all.jar,\
    WEB-INF/lib/aspectj-rt.jar,\
    WEB-INF/lib/bnd.jar,\
    WEB-INF/lib/ccpp.jar,\
    WEB-INF/lib/commons-beanutils.jar,\
    WEB-INF/lib/commons-chain.jar,\
    ...

注釈

WABが liferay-plugin-package.properties ファイル内のportal-dependency-jarsプロパティにJARを一覧表示していても、LiferayはこれらのJARをWABから除外します。

異なるバージョンのサードパーティーパッケージを含める

WARでエクスポートされたサードパーティーパッケージの異なるバージョンが必要な場合は、除外されたJARとは異なる名前のJARにそれらを含めることができます。

たとえば、Spring Frameworkパッケージの異なるバージョンを含める方法は次のとおりです。

  1. Liferayが提供しているパッケージのバージョンを判断します。 たとえば、Liferayはcom.liferay.portal.bootstrapモジュールを介してSpring Frameworkバージョン4.1.9パッケージをエクスポートします。

    Export-Package:\
        ...
        org.springframework.*;version='4.1.9',\
        ...
    
  2. 必要なパッケージバージョンを提供するアーティファクトを見つけます

  3. Liferayが除外する対応するアーティファクトがあるかどうか、 module.framework.web.generator.excluded.paths ポータルプロパティを確認します。 たとえば、Liferayは次のSpring Framework JARを除外します。

    module.framework.web.generator.excluded.paths=\
        ...
        WEB-INF/lib/spring-aop.jar,\
        WEB-INF/lib/spring-aspects.jar,\
        WEB-INF/lib/spring-beans.jar,\
        WEB-INF/lib/spring-context.jar,\
        WEB-INF/lib/spring-context-support.jar,\
        WEB-INF/lib/spring-core.jar,\
        WEB-INF/lib/spring-expression.jar,\
        WEB-INF/lib/spring-jdbc.jar,\
        WEB-INF/lib/spring-jms.jar,\
        WEB-INF/lib/spring-orm.jar,\
        WEB-INF/lib/spring-oxm.jar,\
        WEB-INF/lib/spring-tx.jar,\
        WEB-INF/lib/spring-web.jar,\
        WEB-INF/lib/spring-webmvc.jar,\
        WEB-INF/lib/spring-webmvc-portlet.jar,\
        ...
    
  4. 必要なアーティファクトの名前が除外されたアーティファクトと同じである場合(前の手順を参照)、必要なアーティファクトの名前を変更します。 たとえば、Spring Frameworkバージョン3.0.7のSpring AOP JARを、プロジェクトのWEB-INF/libフォルダに含め、名前をspring-aop.jar(除外されたJAR)以外に変更することで使用できます。

    ちなみに

    JAR名にバージョンを追加すると(つまりspring-aop-3.0.7.RELEASE.jar)、除外されたJARと区別され、WAB(バンドルされたWAB)から削除されなくなります。

これで、WABに必要なJARのバージョンが含まれました。