世の中には
https://github.com/tototoshi/sbt-musical
このようなプラグインが開発される程 Scala のコンパイルが重い事がわりとどうしようもない感じなんだと思いますが
上のプラグインは使ってないけれど、個人的にはそもそもビルド中は Macが 重くなってブラウザも思うように動かせず、iPhone で twitter を見るなどという下らない時間を過した事もありました。
私の場合、依存ライブラリの更新の為のビルドですごく時間がかかっていたので、上記のような状態で待ち時間が非常に苦痛だったんですけれども、
(B が A に依存しており、B を動かす為に A を更新して jar を作成し、B を動かすという感じの構成になっている。A はコード量が多いため重い。)
「Jenkins に job 登録して、push をトリガーに Jenkins にビルドして貰うようにすればいいんじゃね?」
というアドバイスを基に、まぁそのまま実行したらかなり快適にブラウザでネットサーッフィインができるようになりました。
- Jenkins が用意されているか、用意する事が前提
- 作成した jar は社内のリポジトリに上げてるので、一々 DL します。
- 普通は git の branch で作業すると思うんですけれども branch と言えどもコンパイルせずに push する為 commit log がけっこう汚れるので、master とかに merge するときは --squash オプションを付けるとかしないとアレ 普通しますね。
Jenkins で push をトリガーにしてビルドする記事はそこらへんにたくさんあると思いますので割愛します。
Jenkins ワイルドカード使えるので origin/test-branch/* とかいう branch の指定のし方すると、origin/test-branch/ 以下の branch が全て ビルド 対象になってくれたりするのが地味に便利だと思います。
ビルドを早くするにはプロジェクトを分割するとか、Zinq 使ってみるとか色々あると思いますが、思ったより楽で効果的だったのでブログに書いてみました。
(Jenkins から用意しろと言われたらたぶんわりと辛いと思うけど…)
見たいスライドとか rpscala で話題にあがったネタとかも、この時間で見る事ができるんですね!!わーい!
あまりに普通すぎて ブログに書く程の事でもなかったですね ハイ
結構感動的に快適だったので… Jenkins 凄いし、Scala 重い死 っていうただの日記です。
おしまいです。