Emotional-Hudsonプラグインをリリースしてみた...けど失敗した。:-(

見よう見まねで途中までできたんだけど,OSXのバッタモンJDK1.6じゃリリースまでできなかった(Rhinoが無いのね。>Soylatte)。
それでも途中経過を忘れないうちにメモしとく。
#寝る前にやるんじゃなかった。:-)


事前準備
まず,

$ mvn release:prepare

を叩く。「CVSにログインしろ」言われてコケるけど気にしない。
カレントディレクトリに 'release.properties' ってファイルができるんで,必要に応じて中身を書き換える。あたしの場合,OSXのログインIDとjava.netのアカウント名が異なっていたんで,scm.url(CVSROOT)を書き換える必要があった。


どっちにしろCVSにはログインしとかなきゃならない。でも,java.netのアカウントもらってるから,'~/.cvspass'にログイン情報があるんで平気...じゃなかった。どうゆうわけか,CVSROOTがポート番号(2401)ありと無しの2系統で処理するみたいなんで,'~/.cvspass'にはこんなエントリを加えておくのが無難。

pserver:yourname@cvs.dev.java.net:/cvs Ahogehoge
pserver:yourname@cvs.dev.java.net:2401/cvs Ahogehoge


それと,java.netにアップロードするため,'~/.java.net'ってファイルも作っとけって。
くわしくは,こちら。→https://javanettasks.dev.java.net/nonav/maven/config.html


あと,ワーキングコピー配下にCVS管理外のファイルやディレクトリがあっても'mvn release:prepare'がコケるので事前に退避しておく(OSXだと'.DS_Store'なんかもダメ。'release.properties'はおk)。


リリース作業
'mvn release:prepare'を叩くと,3つばかし質問に答える必要がある。要するにリリースバージョンと次の開発バージョンの付与なんで,提案してくるデフォの値でいいんじゃないかな。
#'mvn release:prepare'により,java.netのCVSにリリースタグが打たれるっぽい。

$ mvn release:prepare
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'release'.
  :
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "Emotional Hudson plugin"? (org.jvnet.hudson.plugins:emotional-hudson) 1.01: : 1.01
What is SCM release tag or label for "Emotional Hudson plugin"? (org.jvnet.hudson.plugins:emotional-hudson) emotional-hudson-1_01: : 
What is the new development version for "Emotional Hudson plugin"? (org.jvnet.hudson.plugins:emotional-hudson) 1.02-SNAPSHOT: : 
[INFO] Transforming 'Emotional Hudson plugin'...
  :

最後に,'mvn release:perform'でリリースモジュールをjava.netにアップロードするんだけど,残念なことに'hpi:upload'で「Rhinoが無い」言われてコケた。orz

$ mvn release:perform
  :
[INFO] [hpi:upload]
Rhino classes (js.jar) not found - Javascript disabled
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] org/jaxen/JaxenException
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: org/jaxen/JaxenException
  :

まあいい。SoylatteにRhino入れて,また今度チャレンジしよう。
もう寝る。