サードパーティのjarの設定方法

mavenを初めて触った。
悩んだところをメモ。
依存するサードパーティのjarの設定の仕方がいまいちわからなかった。
でも、たぶん自分の想像通りだと思うので書きます。


ところで、3,4年前にantを少しだけ触ったことがあるけど、
コンパイルと実行くらいしか使ってなかったんよね。
しかも、そのときやりたかったのは、実行結果をファイルに出したかっただけ。
System#setOutでできたのに。
それを知らず・・・orz


標準出力をファイルにするには? - Java Solution
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18777&forum=12&2


でも、意外にSystem#setOutのこと知ってる人少ないと思う。



それはさておき。


maven
antの後継だってことしか知らなかったので、良さそうなサイトを探してみた。


Maven2のTipsを集めるWiki - CookBook
http://wiki.fdiary.net/maven2/?CookBook


ここに書いてあるように、
Javaで開発するときのお薦めフォルダ構成を作ってくれたり
eclipseのプロジェクトファイルを作ってくれたり
その他もろもろ便利。
Javaで開発する際は、まずmaveneclipseのPJを作るところからやるべきだね。


というわけで、
とりあえず、上から順に試してみた。
ソースはWebDav+SVNで管理してるので、wgetで取得。
mavenお勧め構成になってないので、mvしたりrmしたりきれいにする。


で、pom.xmlというXML構文の設定ファイル作成へ移る。


Maven centralリポジトリ以外で提供されている依存ライブラリを設定する
http://wiki.fdiary.net/maven2/?CookBook#l11
ここに書かれてることで少し悩んだ。


mavenってのはyumみたいにリポジトリという場所でjarを管理してる(ものがある。)
あと、rubyperlなんかとも同じ。
デフォルトのリポジトリはここ。
http://repo1.maven.org/maven2/


ここに、いろんなjarが詰まってる。
commons-langだと、リポジトリトップ下にcommons-lang/commons-lang/2.3/
って感じで管理されてる。
1つ目のcommons-langがgroupId、2つ目のcommons-langがartifactIdとなる。
最後はもちろんバージョン。


このリポジトリで管理してるjarは

    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.3</version>
      <scope>provided</scope>
    </dependency>

以下に書けば、mvn compile時に勝手にダウンロードしてくれる。


リポジトリにないjarは、ローカルに落したjarをmvn installすると、
ローカルのリポジトリに追加される模様。
この場合のmvn installで指定するgroupIdやartifactIdは一意になれば自由っぽい。
ここで指定したgroupIdやartifactIdをで書いてやると、ローカルのリポジトリを見に行く模様。


あとは、コンパイルするJavaのバージョンやら文字コードやらを指定してmvn compile。

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <encoding>SHIFT-JIS</encoding>
        <source>1.6</source>
        <target>1.6</target>
      </configuration>
    </plugin>


今のところここまで。
また何かあったら書きます。