Jenkinsをソースからビルドしたい

JenkinsのソースはGithubhttp://github.com/)にお引っ越ししたとのことで、Gitの勉強も兼ねてJenkinsをビルドしてみようと思い立ちました。
Githubにアクセスして、アカウントを取得するまであっという間です。
チュートリアルが用意されていますので、心配無用です。

Githubにログオンして、右上に検索ボックスがあります。

ここにJenkinsと入力して検索すると、

見つかりました!
ウォッチボタンを押下して、さっそくフォークします。
フォークしたらあとはローカルに複製します。
このあたりの手順は、Githubチュートリアルhttp://help.github.com/)にありますので、ここでは省略します。
ローカルに複製が終わったら、mavenにてパッケージングしてみます。
とりあえずビルドが通るか知りたかったので、テストはスキップします。


mvn clean package -Dmaven.test.skip=true

[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

\Users\sikakura\jenkins\remoting\src\main\java\hudson\remoting\Launcher.java:[219,50] 警告:sun.misc.BASE64Encoder は Sun
 が所有する API であり、今後のリリースで削除される可能性があります。

\Users\sikakura\jenkins\remoting\src\main\java\hudson\remoting\Engine.java:[152,54] 警告:sun.misc.BASE64Encoder は Sun
が所有する API であり、今後のリリースで削除される可能性があります。


[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 35 seconds
[INFO] Finished at: Mon Mar 07 23:46:33 JST 2011
[INFO] Final Memory: 83M/543M
[INFO] ------------------------------------------------------------------------

ん、警告のはずがエラーで落ちてしまっています。。。
ちょっと検索をかけてみると、ssogabeさんのページ(id:ssogabe:20091030)がヒットしました。
kkawaさんのコメントに、バグチケットへのリンク(http://jira.codehaus.org/browse/MCOMPILER-109)があったので見てみます。
なるほど、、、どうやらmaven-compiler-pluginのバージョンが2.3.1だと上のバグチケットの問題があるようです。
チケットによると、2.3.2で修正されているようなので、ローカルに複製したJenkinsのpom.xmlを修正し、
同じコマンドを実行してみます。今度は同じエラーは発生しませんでした。一歩前進です。

さて、次のエラーです。

C:\Users\sikakura\jenkins\maven-plugin\src\main\java\hudson\maven\RedeployPublisher.java:192: 変換できない型
検出値  : hudson.model.AbstractBuild<capture#196 of ?,capture#270 of ?>
期待値  : hudson.maven.MavenModuleSetBuild
        if (!(build instanceof MavenModuleSetBuild)) {
              ^
C:\Users\sikakura\jenkins\maven-plugin\src\main\java\hudson\maven\RedeployPublisher.java:195: 変換できない型
検出値  : hudson.model.AbstractBuild<capture#102 of ?,capture#805 of ?>
期待値  : hudson.maven.MavenModuleSetBuild
        for (Entry<MavenModule, MavenBuild> e : ((MavenModuleSetBuild)build).getModuleLastBuilds().entrySet()) {
                                                                      ^

ソースを確認してみましたが、特に問題なさそうに見えます。。。
もう殆どお手上げ状態だったのですが、最後にJDKを最新にアップデートしてみました。
私が使用していたJDKは、6u17だったので、6u24にしてみました。
すると、上のエラーが発生しなくなりました。

途中でビルドしたアーティファクトmavenリポジトリ上に存在しないという旨のエラーが発生したので、
installゴールを追加することにしました。


mvn clean install package -Dmaven.test.skip=true

すると、以下のようにパッケージングが成功しました!

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] Jenkins main module ................................... SUCCESS [6.006s]
[INFO] Jenkins remoting layer ................................ SUCCESS [27.986s]
[INFO] Jenkins CLI ........................................... SUCCESS [9.157s]
[INFO] Jenkins core .......................................... SUCCESS [11:57.039s]
[INFO] Jenkins Maven 2 PluginManager interceptor ............. SUCCESS [7.379s]
[INFO] Jenkins Maven2 CLI agent .............................. SUCCESS [4.493s]
[INFO] Jenkins Maven3 Interceptor ............................ SUCCESS [9.766s]
[INFO] Jenkins Maven3 CLI Agent .............................. SUCCESS [4.618s]
[INFO] Maven Integration plugin .............................. SUCCESS [5:14.481s]
[INFO] Jenkins war ........................................... SUCCESS [1:52.507s]
[INFO] Test harness for Jenkins and plugins .................. SUCCESS [7:05.974s]
[INFO] Jenkins UI sample plugin .............................. SUCCESS [56.098s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 28 minutes 29 seconds
[INFO] Finished at: Tue Mar 08 01:49:39 JST 2011
[INFO] Final Memory: 127M/481M
[INFO] ------------------------------------------------------------------------

Jenkins Coreだけで約12分くらいかかっていますね。


ともあれ、これでビルドする環境が整いました。
次は、CLIの拡張に挑戦してみたいと思います。