IDEA8のMavenサポートが神がかってる件について

と言っても,他のIDEMavenサポートを知らないので,すでにこんくらい当たり前なのかも知れない。


IDEA7の頃から,POM食わせりゃプロジェクトとして開いてくれたんだけど,IDEA8からはMaven ModuleとしてPOM作るところからできるようになりました。MavenProjectHelper涙目ですね。


POMを開いて Alt+Insertを押すと,"Dependency"なんてのが出てくるよ。


ポチっとしたら,"Maven Artifact Search"なんてダイアログが出てきて,望むものを選ぶとPOMにdependencyタグが挿入されますた。もうMaven Repo Searchも要りませんね。ありがとうございました。


POMを更新すると,エディタの左上に"Re-import"ボタンが表示されます。これで編集したけどIDEAに反映し忘れちゃった,なんてうっかりが防げますね。:-)




うーん,Artifact Searchイイネ。どうやらローカルリポジトリの内容をインデクシングしてるっぽいんだけど,いつそれを更新しているのか気になったんで,調べてみた。


そしたらありましたよ。"Settings -> Maven -> Repository Indices"なんてのが。


みるとローカルリポジトリだけじゃなく,Maven本家のリポジトリも見てるご様子。でも,"Updated"が"Never"だったんで,試しに Updateボタン押したらインデクシングはじめた。なるほど,なんとなく仕組みがわかった。


"Settings -> Maven -> Repository Indices"には,AddもRemoveボタンもない。どうやって参照リポジトリを増やせるのかなと思ってみたが,何のことはない。POMのrepositoryタグを参照しているようだ(だって,そうゆう仕様だもん。> Maven)。
#settings.xmlのprofiles->profile->repositoriesに書いたのは認識されなかった。
ためしに,POMに次のようなリポジトリを追加してみた。

<repository>
  <id>java.net</id>
  <url>http://download.java.net/maven/2/</url>
</repository>


改めて"Settings -> Maven -> Repository Indices"を覗いてみると,java.netのリポジトリが追加してあるんで,早速 Update。Updateが済んだら,また Artifact Search ダイアログを出して, "hudson" とかってタイプしてみたら,こうなった。:-)


うんうん,良いんじゃねぇの。Maven好きじゃないけど,これからは使ってみようかなって気にはさせてくれたよ。
密かにIvyIDEAも期待してたんだけど,IDEA本体でこんだけされちゃうと,ちょっと困るな。...いや,もう観念してMaven使うか。


ps.
残念が点が2つほど。
1つはPOMに挿入されるdependencyタグが1行なこと(下記参照)。コードフォーマッタかけても何にも変化ないんで,ちまちま手で直してる。ちょっとイヤだ。

<dependency><groupId>net.sf.click</groupId><artifactId>click</artifactId><version>1.4.2</version></dependency>


も1つは,Mavenのランタイムはバンドルしてないのね。それに気付かなくて,しばらくハマってた。
Antはバンドルしてんだから,Mavenだってバンドルしたっていいのに。なんでだろ?:-(