Maven の Weblogic プラグインを使用して、デプロイを試みる。
現在、Maven の 2.0.x 版を使用している。
で、いつの間にか 2.0.x 用の WebLogic プラグインが出てた。
プラグインは Maven 1.x 用と 2.0.x 用でサイトが分かれていて、更に 2.0.x 用のプラグインも WebLogic の 8.x 用と 9.x 用でバージョンが異なっているようだ。
おそらくこんな感じ。
Maven WebLogic プラグイン
├ Maven 1.x 用プラグイン*1
└ Maven 2.0.x 用プラグイン
├ 2.8.0-SNAPSHOT:WebLogic 8.x 用
└ 2.9.0-SNAPSHOT:WebLogic 9.x 用
今、WebLogic 9.x 版を使用しているので、プラグインは 2.9.0-SNAPSHOT を使用。
Maven は最初の設定がやや面倒臭く(Ant に比べればマシだが)、このプラグインも少し設定を追加・修正しなければならない。
Mojo – MojoHaus Maven Plugins Project
configuration タグ内の要素の意味は、ゴール一覧にある各ゴールのページを見れば何となく分かる。
- それから WebLogic の JAR ファイルを Maven のローカルリポジトリにインストールしなければならない。
- そして最後に、codehaus のスナップショット・リポジトリにアクセスするために、以下のページの例のように pom.xml または settings.xml に記述を追加しなければいけない。
Mojo – MojoHaus Maven Plugins Project
上記の設定を踏まえて、試しに weblogic:redeploy ゴールを実行してみた。*2
mvn weblogic:redploy
・・・しかし、失敗してしまった。
以下のようなエラーが出た。
no protocol: and
pom.xml の adminServerProtocol タグには t3 を指定したのだが、どうもこの t3 プロトコルがどこかで認識されていないのだろうか?
・・・って思ったけど、以下のページを見ると、ローカル・リポジトリのパスにスペースが含まれていると、ゴールが失敗するっぽい(この例では"Documents and Settings"のこと)。
http://jira.codehaus.org/browse/MOJO-759
つまりスペースを区切り文字とみなしてパス(URL)を解析してて、結果、例外が発生してしまうんだろう。
だから"no protocol: and"とか言う意味不明なメッセージが出力されるわけだ。
そういやこのメッセージは Java のプログラムで、時々見かけるね。
ともかく Maven のプラグインを作るんだったら、Windows の場合、デフォルトのローカル・リポジトリは"%HOMEDRIVE%\Documents and Settings\%USERNAME%.%USERDOMAIN%*3\.m2\repository"になるんだから、それを前提にしてほしかったなー(><)
・・・ともかく原因が何となく分かったので、まず settings.xml の settings タグの直下に以下のタグを追加してみた。(ドメインに参加してない場合、${USERNAME}.${USERDOMAIN} ではなくて ${USERNAME} のみになると思う。)
<localRepository>${HOMEDRIVE}/Docume~1/${USERNAME}.${USERDOMAIN}/.m2/repository</localRepository>
で、ゴールを再実行。
すると、、、またもやエラーだけど、出力が変わってきた。
no protocol: Files/Java/jdk1.5.0_07/lib/tools.jar
これは私のPCの環境変数 JAVA_HOME が "C:\Program Files\Java\jdk1.5.0_07" となっているから。
なので、JAVA_HOME を以下のように変更して、再実行。。。
C:\Progra~1\Java\jdk1.5.0_07
やっと上手く行きましたよ。。。