jenkins,mavenと戯れる

いろいろな理由があって、素直な使い方ができなかったのでjenkinsのmaven設定を弄ってみた。

setting.xmlの変更

サーバにJenkinsを入れたけど、自分ではサーバに直接アクセスできない...
でもproxy通さないとセントラルリポジトリとかにアクセスできない。

Jenkinsでは、mavenのオプション設定でプロジェクト毎に異なった setting.xmlが使えるようになっている。設定すると"-s"オプションでパスを指定くれていました。
この設定は相対パスで指定するものみたいで、サーバのsetting.xmlとは違う設定を使いたい場合には、プロジェクトのリソースとしてsetting.xmlを持つということらしい。
jenkinsからmavenにdeployしたいときなんかには、リポジトリへの認証情報を持つこともあったり
sonarつかうときにも、認証情報とか書くので
そういう時に使えるのかなぁと。

でも、今回は共通で使うので次のようにしてみました。
1. svnにconfigというリポジトリを作成。
2. configジョブをマルチプロジェクト作って、svnとヒモ付。ビルドはなしのまま。
3. configを一回ビルド(トリガはっとけば、更新いらずに)
4. setting.xml指定で、../../config/workspace/maven2/setting.xml とする。

各プロジェクトで持たなくても、Jenkinsの設定で、--settings で設定してしまえば各プロジェクトで設定する必要がなくなる。そしたらフルパスでも良さそうだし。ソッチのほうがいいのかな。
ちなみに、-sは設定しても知らないって言われてしまった。

思ったこと

setting.xmlには、ローカルリポジトリのパス指定もあるので、各プロジェクトで管理するより、サーバ側で管理した方がいいんじゃないか。

pom.xmlパスの変更

結果、失敗だった。
jenkinsのおためしのために違うpomを指定するために --file を使ってみた。そういう用に使うものじゃないことに設定してエラー言われてから気づいた。きっと、マルチプロジェクトでpomを指定するときに使うんだと思う。
ちなみにJenkinsさんは、-fオプションで指定くれていました。