日々精進

新しく学んだことを書き留めていきます

JavaEEで使用するAPIが増えてもprovidedCompileを増やさないでよくする

普通はJSF, JAX-RSなどの機能毎にapi jarが作られており、各機能を使う場合はapi jarをprovidedCompileで取り込まないといけない。 が、libertyのinstallFeatureコマンドでインストールしたすべての機能のapi jarを自分で作ってそれを取り込むという方法がある。 そうするといちいちmaven repositoryからapi jarを探して取り込むという手間が省ける。

# project rootで実行する
./wlp/bin/featureManager featureList my_feature_report.xml
# このmy_feature_report.xmlをbuild.gradleのliberty.liberty.nameで指定したfeature名で検索し、どのfeatureがインストール済みか調べる。
# 最後の./lib/ure-api.jarがキモ。相対パスでapi jarへの参照が吐かれるので別のフォルダに生成してから移動させるとapi jarをロードできなくなる。
./wlp/bin/featureManager classpath --features=beanValidation-1.0,cdi-1.0,ejbLite-3.1,jdbc-4.0,jndi-1.0,jpa-2.0,jsf-2.0,jsp-2.2,managedBeans-1.0,servlet-3.0 ./lib/ure-api.jar

参考:

http://www-01.ibm.com/support/knowledgecenter/SS7K4U_8.5.5/com.ibm.websphere.wlp.nd.doc/ae/rwlp_command_featuremanager.html