Maven Integrationを試す(その2)

えー,こんなところで妥協することとしましたヨ。

1.IDEAでふつーにプロジェクトを作る(Webファセットとかはご自由に)。
2.POM作って,IDEAと連携させる

プロジェクトができたら,こんなPOMを作る。groupIdやartifactIdはテキトウでいい。どっちにしろ,Mavenでビルドとかしないし。

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>MavenTest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>MavenTest</name>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
  </build>
</project>

ポイントは,この2つくらい。

  • packagingタグを書かない(まかり間違って,warとか書くとWebファセットが影響受ける)。
  • buildタグのsourceDirectoryやtestSourceDirectoryは,IDEAのそれにあわせる(いや,べつにMaven風でもいいんだけどさ)。


POMが出来上がると,自動的にMavenプロジェクトと認識するので,Tool WindowのMaven projectsから,IDEAの連携方法を設定する(ツールバーの"Maven settings"を選ぶ)。


Maven Integrationダイアログで,IDEAとの連携方法を設定するんで次のように設定しておく。

  • "Create regular IntelliJ IDEA modules (will require manual synchronization with Maven projects)"を選んで,手動連携にする。
  • "Use Maven output directories"のチェックを外す(これは好みの問題)。
3.POMの内容をプロジェクトに反映させる

そのまえに,dependenciesタグ書いといてね。


手動連携なんで,ツールバーの"Synchronize with Maven projects"を押す。そすっと,Mavenが動いて,いろいろやってくれる(って,ライブラリのダウンロードだけど)。


あとは,dependenciesタグを書き換えるたびに,同じように同期とるだけじゃ。
ツールバーの"Synchronize with Maven projects"の隣にある"Download artifacts"を押すと,ソースやらJavadocやらをダウンロードしてくれるよ(ちゃんとIDEAのライブラリにも設定してくれる)。


注意事項がひとつだけ。


POMの内容のほうがProject Settingsより強いので,Project Settingsに直接ライブラリを設定してもムダだよ。POMと同期取ると消えて無くなるんで,Project SettingsのSourcesタブとDependenciesタブは,POMに任せとくのが吉。
#ライブラリの設定がひととおり済んだのなら,POMを消しちゃっても問題はないみたい。


これでライブラリ設定の手間はだいぶ減ったんだけど,やっぱりPON(dependencies)の入力支援が無いと,今ひとつだなぁ。:-(
真面目にMaven Repo Searchみたいなの作ろうかな...