WABから除外されたJAR
Liferay が生成した Web アプリケーション バンドル (WAB) からは、Liferay がすでにエクスポートしている パッケージを含むサードパーティの JAR が削除されます。 追加のJARから同じサードパーティーパッケージをデプロイすると、デバッグが難しい奇妙なエラーが発生する可能性があります。 Liferay の module.framework.web.generator.excluded.paths ポータル プロパティ は、除外される 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,\
...
Liferay は、WAB が portal-dependency-jars プロパティまたは liferay-plugin-package.properties ファイルに JAR をリストしている場合でも、これらの JAR を WAB から除外します。
異なるバージョンのサードパーティーパッケージを含める
WAR に エクスポートされたサードパーティ パッケージの異なるバージョンが必要な場合は、除外された JAR とは異なる名前の JAR にそれらを含めることができます。
たとえば、Spring Frameworkパッケージの異なるバージョンを含める方法は次のとおりです。
-
Liferay が提供する パッケージのバージョンを確認します。 たとえば、Liferayは
com.liferay.portal.bootstrapモジュールを介してSpring Frameworkバージョン4.1.9パッケージをエクスポートします。Export-Package:\ ... org.springframework.*;version='4.1.9',\ ... -
必要なパッケージ バージョンを提供するアーティファクト を見つけます。
-
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,\ ... -
必要なアーティファクトの名前が除外されたアーティファクトと同じである場合(前の手順を参照)、必要なアーティファクトの名前を変更します。 たとえば、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 (バンドルされた WAR) から削除されなくなります。
これで、WABに必要なJARのバージョンが含まれました。