HappyGoLucky

Web系サーバーサイド寄りの自動化大好きエンジニアの徒然なるブログ

jenkinsのデバッグをやってみた

基本的には、wikiを踏襲

https://wiki.jenkins-ci.org/display/JA/Building+Jenkins

 

こっちも参考に

http://www.slideshare.net/wadatka/jekins

 

ただし最新の情報は基本的にこっち

https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial

 

流れとしては、

1)jenkins を git clone

2)コンパイル

mvn package

3)プラグインの生成

mvn org.jenkins-ci.tools:maven-hpi-plugin:1.96:create 

4)Eclipse用プロジェクトファイル生成

mvn -DdownloadSources=true eclipse:eclipse

5)Eclipseにインポート

6)環境変数の設定

 

export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n"

7)生成したプラグインのディレクトリへ行ってjenkinsの起動

  tomcatと被るのでポートを10080に変更

mvn hpi:run -Djetty.port=10080

8)eclipseのDebug設定

9)起動したjenkinsに移動

localhost+10080/jenkins

 

 

試行錯誤しなからやったので、抜けている項目があるかも。

jenkinsプラグインを作る

jenkinsのプラグインを作ろうとしたが、

mvn hpi:create で作ると、作られるスケルトンのパッケージ名に問題があり、mvn packag時にエラーが出る。

具体的には、パッケージ名に「null」が含まれてしまう。

ググったら同じ症状の人が居て、回答もあったのでメモ。

http://jenkins-ci.361315.n4.nabble.com/mvn-hpi-create-adding-null-to-package-name-td4650475.html

 

【解決方法】

mvn hpi:create

 ↓

mvn org.jenkins-ci.tools:maven-hpi-plugin:1.96:create 

 

まあ、あくまでスケルトンなので、後で自分でうまく修正しなさいよ、ってことかもしれない。

外部ファイルとパラメータ

環境によって処理が変わる場合、

その分岐として使用するパラメータを、

外部ファイル(xmlなど)にして、使用する環境別に置き換えるようにするべきか、

同じく外部ファイルにして、内部に環境ごとのパラメータを持たせるべきか。

 

外部ファイルにすると、ファイルを差し替えるだけで別環境への対応が簡単にできる。

ただし、環境ごとにファイルが必要になるし、差し替える、という別プロセスの動作が必要になる。

内部に持たせると、一ヶ所で管理でき、同じプロセス内で対応が完結する。

ただし、特定の環境パラメータを解析する、という処理の実装が必要になる。

 

この両方の良いとこどりをした考え方はないものか。

jenkinsをgithubから取ってきてmavenでコンパイルした時のメモ

深夜のテンションで深く考えずやってたら、思いの外手間取ったのでメモ。

1).m2/settings.xml を忘れずに(忘れてたわー

 # wikiのプラグインチュートリアルページ参照

 mavenのセントラルリポジトリにないjarを取ってくるために必要

2)java7じゃないとだめ

 素のUbuntuに入ってたjava-6-openjdk-i386を使っていたら、maven install できなんだ

 # どういうエラーだったか控えてない...

 apt-get install openjdk-6-jdk をすればうまくい...かない

 # コンパイルエラー発生

 apt-get install openjdk-7-jdk でようやく解決