2007/10/18

Hudson(winstone)の起動ポート(port)の変更方法

Hudsonはwinstoneのコマンドラインがそのまま使えます。

このため起動portを変えたかったら「Command-line options」にある「--httpPort」でport番号を指定すればOK
java -jar hudson.war --httpPort=1192


なのでwinstoneも同じ方法でportが変更できる。


なんかもったいないので見つけ出した過程を書いとく。

ずっと探してたけどわかんなくて結局Hudsonのコードを見て探し当てた。

winstoneの起動コマンドでportが変更できるのを知ってたので
hudsonからwinstoneの起動場所のコードをいじる方針で調査開始!

<起動Mainのクラス名の検索>
・Hudsonは起動時に%TEMP%フォルダにhudson.warを解凍するので見に行く
・META-INF\MANIFEST.MFのMain-Classを見る
・Mainというクラスが始めに起動することがわかった

<起動Mainのクラスコードの検索>
・HudsonのコードからMain.javaを検索
・4つMain.javaあったがデフォルトパッケージの「hudson/war/src/launcher/java/Main.java」を開く

<winstone起動場所の調査>
・Main.main(String[] args)を見るとjarを読み込んでる
・winstoneのMainクラス「winstone.Launcher」を呼び出してる場所を発見
・Mainクラスのコマンドライン引数に「--warfile」を追加して、
 winstone.Launcher.mainを起動しているだけと判明




ちなみに、hudsonのプラグインで「port-allocator」なるものがあった。
ヘルプを見るとHTTP_PORT, ADMIN_PORT, SHUTDOWN_PORTが指定できるそうなので、引数指定しなくてもよくなるかもしれない

2 件のコメント:

匿名 さんのコメント...

ソースコードをみなくても、"java -jar hudson.war --help" とやるとすべてのオプションがご覧いただけます。

ipa さんのコメント...

作者様からのコメントがいただけるとは感無量です
なるほど確かにどばどばでました…ありがとうございます