MAVEN_REPOとDevLoader

Maven2でしょっく

自社に帰ったらすぐに我が社の無茶苦茶脆弱な開発基盤を構築するのが使命、やはりMavenは気になる存在で、ヒマを見つけちゃちょこちょこ遊んで、おおおと感激しとった訳なんですが。

Maven2で遊んでたら、どうやらeclipseプラグインでプロジェクト作る時に使うMAVEN_REPOって環境変数は廃止になったらしく、ちょっとショック。ローカルリポジトリがフルパスで吐かれちゃう。

誰かがまず最初にgenappとeclipseプラグインでプロジェクト作って、それをCVSとかにあげておけば、他の人が落としても、クライアントごとに一回だけMAVEN_REPO環境変数さえ設定してやればすんなり共有出来て、Mavenの事よく知らん人でも取り敢えず開発やデバグは出来るので、おーとか思ってたのに。

なんならMavenMAVEN_REPOをeclipseに設定してやるadd-meven-repoゴールもあるからコマンドライン教えてコピペ実行させればいいし。

開発用クラスローダ

eclipsetomcatプラグインの開発用クラスローダって、見なかった事にしてたんだけど、やっと意味が判った。

今までMavenで遊んではいたけど、ちゃんとtomcat通して動かすとこまでやってなくて、さあやるかと思ったら、そりゃそうだ、動きゃしない。WEB-INF/libにjarがねーもの。全部ローカルリポジトリだもん。

UIからの動作確認・デバッグするたんびにビルドするのもやだなーと思って、ふとプロジェクトのプロパティのtomcatの所にある「開発用クラスローダ」ってのを思い出して、色々調べて、DevLoader.zipをDevLoader.jarにリネームして%TOMCAT_HOME%server\libに入れて、動くようになった。

なーるほどね。今まで開発段階でWEB-INF以下は全部本番通り揃えてたからなー。

結局フルパスだった

で、開発用クラスローダを使うと、プロジェクトのルートディレクトリに「.#webclasspath」ってファイルが出来て、その中にクラスパスがずらーっと並んで、それを読み込むらしい。

したっけこいつの中身ってば、そりゃそうだ、フルパスなんだよなあー。tomcatが見るんだもん、MAVEN_REPOなんて変数知ったこっちゃねーわな。

けつろん、と思ったら違ったらしい

eclipseのプロジェクトを複数クライアントで共有したって、結局各クライアントで「.#webclasspath」を作り直さなきゃいけない訳で、MAVEN_REPOの意味がないんだよなー。そんなこんなでMaven2では廃止になったんだろうか。

ってここまで書いて、ふと気付く。

「.tomcatplugin」にもってエレメントがあるぞい。プラグインはこっちみてるのかも。って事は、「.#webclasspath」ってのは、各クライアントで実行時に適宜生成するファイルなんだろか。そんならこいつだけignoreしちゃえばいいんじゃん。

てな訳で自宅にプロジェクトをごっそり持っていってやってみます。

で、これが上手くいったら、ますますMaven2でのMAVEN_REPO廃止は不可解ちゃん。いや廃止じゃなくて未実装なだけなのかも知れないけど。未実装である事を祈るのでR。