Jenkinsをソースからビルドしたい
JenkinsのソースはGithub(http://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の拡張に挑戦してみたいと思います。