日本語 : Building Jenkins

オリジナル: Building Jenkins

前提条件

Jenkinsをビルドするには、比較的新しいJDK 1.6(JRE では不十分であり、また 6u17ではダメだという報告があります) と Maven 3.x が最低でも必要です。 Looks like the Maven Enforcer plugin apparently looks at your JAVA_HOME environment variable. Here is a small linux alias I used to switch to jdk 1.6:

alias jdk6='export JAVA_HOME=$JAVA_6_HOME ; export PATH=$JAVA_6_HOME/bin:$PATH'

Issues:

  • Test suite requires a graphical environment.

作業環境を設定する

Jenkins をチェックアウトして、以下の手順に従ってください。

// check out the workspace
$ git clone https://github.com/jenkinsci/jenkins.git
// Download dependencies and build with Maven
// Note: mvn install may be a prerequisite for other mvn targets
$ cd jenkins
$ mvn -Plight-test install

上記のgit リポジトリはpluginsではなく、Jenkins-coreの場所になります。そのリポジトリには、"changelog.html"というファイルがあり、コードにコミット した時には、このファイルを更新してください。

初回のビルドは、Maven central から 依存するもの全てをダウンロードするので、時間がかかります。ビルドの最後に BUILD SUCCESSFUL で終われば成功です。war/target/jenkins.war がビルドしたJenkinsになります。

Eclipse

M2Eclipse/m2e を使って Maven のプロジェクトを直接インポートするか、コマンドラインから Eclipse の プロジェクト用ファイルを作成してからインポートするかで、インポートできます。どちらの方法が良いかは、コミュニティの中でも合意が形成されていません。Maven に慣れているユーザーは、m2eclipseを好むようですし、Maven に慣れていない人は後者のが容易で直感的だと思うようです。

// generate .project and .classpath for Eclipse
$ mvn -DdownloadSources=true eclipse:eclipse

step-by-step のガイドが こちら になります。

Netbeans/Intellij IDEA

NetBeans (6.7以降) のユーザーは、「File」→「Open Project」で、jenkins のフォルダのPOMを直接開くことができます。IntelliJ IDEA のユーザーは、Maven の POM を直接開くことができます。

もし IDE が "Messages" クラスが見つからないという警告を出すようならば、生成されてなくて見つけられていません。一度 maven のビルドを実行してみてください。それでも出る場合には、 target/generated-sources を IDE の compile source roots に追加してください。

Jenkins のデバッグ

Maven Jetty plugin は、便利なデバッグ環境を提供しますが、いくつかの理由のため、プラグインを変更して別の名前で管理しています。 プラグインの名前は異なりますが、設定パラメータは同じです。以下の通りJenkinsをデバッグ環境で起動して、ブラウザでhttp://localhost:8080/にアクセスしてください。

# To change the port run mvnDebug hudson-dev:run -Dport=9090
$ cd war
$ mvnDebug hudson-dev:run

ポート 8000をデバッグポートとしてMavenを起動します。リモートデバッグ機能でIDEからこのポートに接続できます。Jettyはすべての変更を自動的に反映します。

  1. core/src/main/resourcesにあるviewファイルに変更を加えた場合、ブラウザでF5を押下すれば変更を確認できます。
  2. war/resourcesにある静的なリソースに変更を加えた場合、ブラウザでF5を押下すれば変更を確認できます。
  3. Javaファイルに変更を加えた場合、IDEでコンパイルすればJettyが変更を反映します。mvnコマンドを実行する必要はありません。
  4. NetBeansユーザーは、main/warを開いて、Debugを叩くだけです。

プラグインを開発してテストしたい場合には、Plugin Structure#Testing With Jenkins を参考にしてください。

Tips

  1. 毎回リポジトリにアクセスしないように、Mavenを"mvn -o ..."のように起動してください。そうすれば、操作がかなり速くなります。
  2. Mavenが警告とかを出す場合、"cd $HUDSON/main; mvn clean install"を実行してみてください。
  3. 上記のプロファイル(-Plight-test)は高速に実施できるテストのみを行い、インテグレーションテストをテストハーネスで実施しません。テストをスキップするには(オススメしませんが!)Mavenを"-Dmaven.test.skip=true"で起動してください。
  4. ここに書かれていることで不備があればメーリングリストにメールしてください(-jaのリストなら日本語でもOKです)。日本の開発者はこのメーリングリストを頻繁に見ていますし、devのメーリングリストなら世界中の開発者が見ています。このページにコメントとして質問しても答えを受け取れないかもしれないので、質問はメーリングリストの方がオススメです。
  5. Setting up a local Maven repository manager can considerably speed up your Jenkins builds, and make life with Maven more pleasant in general. Click here for instructions on how to set up the Nexus Maven Repository Manager for building Jenkins.

クレジット

The sponsor statement from YourKit Java Profiler, which gave us a free license for the Hudson project.

Open-source license for YourKit Java Profiler

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit ASP.NET Profiler

Open-source license for StackProbe Profiler

StackProbe is kindly supporting open source projects with its profiler, StackProbe Profiler

Open-source license for IntelliJ IDEA

JetBrains is kindly supporting open-source projects with their OSS license for IntelliJ IDEA.