WebLogic Mavenプラグインを使って依存モジュールの解決を楽にする
jBatch×WebLogicのネタも考え中ですが、閑話休題ということで。
以下のような開発をしているエンジニアの方は、WebLogic Mavenプラグインを利用するのがおすすめです。
例えば、Servlet-APIやJDBCドライバのjarファイルを、pom.xmlにひとつひとつ書いて取得してたりしないでしょうか。しかも、WebLogicに入っているモジュールのバージョンを確認して、自力でローカルリポジトリにインストールしたりとか…。
WebLogic Mavenプラグインを使うと、個別にpom.xmlに記述せずとも、WebLogicに入っているモジュールを自動取得することができます。
手間が減るのはもちろん、コンパイルとランタイム間での、バージョン不整合を防止することができます。
というわけで、WebLogic Mavenプラグインを使って、WebLogicに入っているモジュール解決する手順を紹介します。
1. 手順
1-1. 前提条件
この手順は、以下の条件を満たしていることが前提です。
また、これ移行の手順は、WebLogic Server 12.2.1を使う想定で書きます。
1-2. WebLogic Mavenプラグインのインストール
以下のコマンドを実行します(WebLogic Server 12.2.1 の場合)
> cd ${ORACLE_HOME}\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.2.1
> mvn install:install-file -DpomFile=oracle-maven-sync-12.2.1.pom -Dfile=oracle-maven-sync-12.2.1.jar
※${ORACLE_HOME}は環境に合わせて変更してください。
以下のような内容がコンソールに出力されればOKです。
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom---
[INFO] Installing C:\WLSHandsOn\mw\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.2.1\oracle-maven-sync-12.2.1.jar to C:\Users\hhayakaw\.m2\repository\com\oracle\maven\oracle-maven-sync\12.2.1-0-0\oracle-maven-sync-12.2.1-0-0.jar
[INFO] Installing C:\WLSHandsOn\mw\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.2.1\oracle-maven-sync-12.2.1.pom to C:\Users\hhayakaw\.m2\repository\com\oracle\maven\oracle-maven-sync\12.2.1-0-0\oracle-maven-sync-12.2.1-0-0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.076 s
[INFO] Finished at: 2016-03-07T09:32:09+09:00
[INFO] Final Memory: 9M/245M
[INFO] ------------------------------------------------------------------------
1-3. ローカルリポジトリにモジュールを取り込む
MavenのローカルリポジトリにOracle_Home配下からモジュールを取り込みます。
以下のコマンドを実行します(12.2.1の場合)
>mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=${ORACLE_HOME}
※${ORACLE_HOME}は環境に合わせて変更してください。
取り込むモジュールがたくさんあるので、コンソールに大量のメッセージが出力されますが、最終的に以下の内容が出力されれば成功のようです。
[INFO] SUMMARY
[INFO] ------------------------------------------------------------------------
[INFO] PUSH SUMMARY - ARTIFACTS PROCESSED SUCCESSFULLY
[INFO] ------------------------------------------------------------------------
[INFO] Number of artifacts pushed: 1013
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] PUSH SUMMARY - ERRORS ENCOUNTERED
[INFO] ------------------------------------------------------------------------
[INFO] No issues encountered.
[INFO]
[INFO] IMPORTANT NOTE
[INFO] This operation may have added/updated archetypes in your repository.
[INFO] To update your archetype catalog, you should run:
[INFO] 'mvn archetype:crawl -Dcatalog=$HOME/.m2/archetype-catalog.xml'
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:51 min
[INFO] Finished at: 2016-03-07T09:39:33+09:00
[INFO] Final Memory: 11M/162M
[INFO] ------------------------------------------------------------------------
1-4. pom.xmlを編集する
ビルドするプロジェクトのpom.xmlに<dependency>
と、<plugin>
タグを追加します。
以下の様に、両タグを記述します。また、既存の記述の不要な<dependency>
は削除しておきます。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> … <dependencies> … <dependency> <groupId>com.oracle.weblogic</groupId> <artifactId>weblogic-server-pom</artifactId> <version>12.2.1-0-0</version> <type>pom</type> <scope>provided</scope> </dependency> </dependencies> … <build> <plugins> … <plugin> <groupId>com.oracle.weblogic</groupId> <artifactId>weblogic-maven-plugin</artifactId> <version>12.2.1-0-0</version> </plugin> </plugins> </build> … </project>
1-5. ビルドする
普段どおりビルドを実行します。例えば、
> mvn clean package
初回は結構時間がかかります。WebLogicから取り込んだモジュールの、メタデータのダウンロードらしき処理がおこなわれます。
2. 適用例
例えば、以前紹介したjBatchのサンプルアプリケーションですと、以下のモジュールの記述を削減できます。
実際のコードはこちら。Java EE系が軒並み減らせました。
WebLogic Mavneプラグインの機能は、今回紹介したものだけではありません。ビルドしたものをテスト環境に自動デプロイしたり、WLSTを実行したりなど、もっと高度な機能があります。
詳細は公式のドキュメントを参照ください。