sbt

sbt 0.13.13でtestOnly時のテストクラス名のtab補完が効かないデグレのワークアラウンド

sbt

以下をプロジェクトのbuild.sbtか グローバルなやつ (例 $HOME/.sbt/0.13/build.sbt )に書いておく inConfig(Test){ definedTestNames <<= { import sbinary.DefaultProtocol.StringFormat import Cache.seqFormat (definedTests map (_.map(_.name).distinc…

Scala2.12とsbtのインクリメンタルコンパイルとコンパイル速度

標題の件について簡単に実験をして、それにともなう(コンパイル速度改善可能性の)予想をたてたので、それを書いていく。

sbt-protobufでsrc/test/protobufみたいなのをサポートしたい

以前書いたとおり、sbt-protobufというsbt pluginのコミッターになったので、地味にメンテしてるわけですが

sbt-protobufというsbtのpluginのコミッターになってリリース権限もらった

https://github.com/sbt/sbt-protobuf 経緯の解説をする

sbt-dependency-graphをherokuで実行するやつ作った

https://github.com/xuwei-k/dependency-graph

sbtで依存ライブラリのjarのsha1やsizeをチェックする

sonatypeって確か何故か上書きできる?し、その他なぜか信用ならないリポジトリを使わざるを得ない、もしくはとても心配性な人のためのなにか

sbtにおけるKeyとは何か? 〜 有向非巡回グラフ(Directed Acyclic Graph)とsbt

sbt

sbtを使ったことがある人なら、たいていSettingKeyやTaskKeyという言葉を聞いたことがあるはずです。もし聞いたことがなくても、1度でもsbtを使ったことがあるなら、すでに知らないうちにそれらに触れているはずでしょう。 それらSettingKeyやTaskKeyを含ん…

sbtで、privateリポジトリやgithub enterpriseでも、project referenceを使ってsshプロトコルで直接参照する方法

sbt

タイトル長ぇよ!

sbtで重複を許可しないparserを作る

"重複を許可しない" という言葉だけだと、何言ってるかわからないと思いますが、少しタイトル長くした程度ではいずれにせよ理解してもらえなそうだったので、こういうタイトルになりました。

json4sの3.3系とsbt0.13.7やsbt0.13.8は一緒に使えません

https://github.com/json4s/json4s/issues/236#issuecomment-103363789

sbtのtest-interfaceについて

sbt

これ https://github.com/sbt/test-interface

sbtのCommandとTaskの違い

sbt

Scala祭での、eed3si9nさんによる「sbt被害者の会」をまとめたgoogle documentより抜粋をしたtweetURL"commandは世に出すべきものではないというスタンス、ドキュメントにもそう書いている""stateにアクセスしないといけない場合のみ(sbtそのものの挙動を変…

sbtで "-Ywarn-unused" や "-Ywarn-unused-import" を設定する際のベストプラクティス

前提や問題点 "-Ywarn-unused" と "-Ywarn-unused-import" は、Scala2.11以降の機能 REPLでこれが有効になるとうざいだけなので、REPLのときのみ無効にしたい

scalikejdbcのcode generatorとflywayのsbt pluginを組み合わせて頑張ろうとしてる話

「頑張ろうとしてる」とは、どういうことかというと 「とりあえず方法思いついたけど、これで本当にうまくやっていけるかなぁ?と半信半疑なので、意見を伺いたい状態」 ということ。

sbtのtestOnlyで入力にマッチするテストが1つもなかった場合に失敗にする方法

sbt

testResultLogger := TestResultLogger.Defaults.Main( printNoTests = TestResultLogger((_, _, _) => sys.error("そんな名前のテストないよ(^Д^)www")) ) 以下簡単な解説

sbtで指定した特定のScalaコンパイラの警告を表示しないようにする方法

sbt

https://github.com/ermine-language/ermine-legacy/blob/d576a7b97/build.sbt#L39-L59 https://github.com/ermine-language/ermine-legacy/blob/d576a7b97/project/Build.scala#L42-L61

jol(Java Object Layout)という、Javaのオブジェクトがどのようにメモリ上にレイアウトされるのか?というツールをsbtから便利に使えるようにする

最近公式にopenjdkの一部になったらしい?ので、まだあまり有名じゃないかもしれませんが、以下のような便利ツールがあるの知ってますか?http://openjdk.java.net/projects/code-tools/jol/

sbt-appengineで2段階認証

https://github.com/sbt/sbt-appengine1. sbtのコンソールで以下のように入力

scalikejdbcでsbt0.13.6にアップデートしようとした際のトラブルまとめ

scripted testのnewerコマンド失敗する そもそもsbt0.13.5までnewerコマンド自体がバグってた(必ず成功してしまう) https://github.com/sbt/sbt/commit/4d29302632a07fd scalikejdbcのnewerの部分、引数逆だった 引数逆に修正しても、lastModifiedの時間同じ…

sbtをScala2.11で単なるライブラリとして使う

sbt

Scala祭の興奮冷めやらぬ中?なのか、べつにそうでもないのかよくわかりませんが、引き続きこういった地味なお役立ち情報を書いていきたい所存です。

sbtのconsole上からIntelliJ IDEAを起動させる

commands += BasicCommands.newAlias("openIdea", """eval sys.process.Process("open" :: "/Applications/IntelliJ IDEA 13 CE.app" :: Nil).!""")

sbtで、テストを1つずつ実行して、1つでもテストが失敗したらその時点で他のテストは実行せずに終了するコマンド

同僚に聞かれて、そういえば標準にはない?し、少し調べても見つからなかったので作りました。「すでにあるよ!」「もっといい方法あるよ!」 などあれば教えて下さい。 あと、テスト名sortの部分はカスタマイズできるようにしたほうが便利そうですね。 追記…

sbtrcでsbt pluginを追加できるようにしておくと便利なことに気づいた

sbt

sbtには、便利なのにあまり知られてない.sbtrcという仕組みがあります。

Scalaでクラス図を表示するsbt plugin作った

コードのベースは、もう4年くらい前 に書いたやつ持ってきただけhttps://github.com/xuwei-k/sbt-class-diagram

sbtの "~ compile" がファイル名変更や移動を検知してくれない件

sbt

sbtにissue作るかpull reqを出したいけれど 「誰が見ても明らかなバグで修正方法も明らか」 ではなく*1、少し議論の余地がありそうだけれど、そのあたりを英語でうまく説明する自信がないので、まずは日本語で書きだしてみるシリーズ(たぶん後でissue報告かp…

typesafe activatorを使わないplayframework2.3の始め方

tototoshiさんの、これPlay 2.3 がリリースされたので変更点と試し方を説明しますの便乗(?)的な感じで、なぜか自分もチュートリアルを書いてみます。普通に書いたら意味ないので、少しだけ変わった方法を書いてみます。

giter8-pluginとtravis-ciで、複数versionのScalaのテストをする

giter8-pluginのversion0.6.4時点の情報です。giter8-pluginは、giter8で作ったテンプレート自体のテストを書くためのsbt-pluginです。

sbtのscripted testを書いてpull req送りつけるおじさんだよー(sbt-lock編)

こんにちは、なぜか足を捻挫して、ゴールデンウィーク9連休なのにほぼ家に引きこもってるマンです。足はこんな状態です(グロ注意) http://f.hatena.ne.jp/xuwei/20140501181556さて、そんなことはどうでもよくで、sbt-lockというsbt pluginのテストを書いた…

sbtでサブプロジェクト毎にクロスビルドするScalaのversionが異なる場合のバッドノウハウ

タイトル長くなりすぎるからやめましたが、本当に話したいこと、話すことは、 「サブプロジェクト毎にクロスビルドするScalaのversionが異なる場合」 だけではなく 「さらにその中にsbt pluginがあってscripted testもしたい場合」 です・・・つらい・・・。…

sbtでunidocを自動でsonatypeにpublishする

sbt

まずsbt-unidoc https://github.com/sbt/sbt-unidoc というsbt pluginの簡単な説明。(以下の説明は、現時点で最新の0.3.0という前提です) sbtでサブモジュールを分けた場合、標準ではそれぞれ個別のScaladocしか作れない sbt-unidocは、すべてのモジュールを…

sbtのバグを見つけたと思ったら、結局Scalaのバグだったという話

https://gist.github.com/xuwei-k/10002590 https://github.com/sbt/sbt/issues/1237

sbtで一つ下の階層のシェルに入るコマンド

sbt

よく忘れるので書いておく reload plugins 戻り方 reload return https://github.com/sbt/sbt/blob/0.13.1/src/sphinx/Extending/Plugins.rst#1c-automatically-managed-command-line-approach

sbt-sonatypeとsbt-release pluginを組み合わせて使うサンプル

sbt

追記 sbt-sonatype0.2.1から、sonatypeReleaseAllがInputKeyではなくTaskKeyになったらしいので、sonatypeReleaseAllを使う場合は「わざわざTaskKeyを作ってInputTaskからTaskKeyに変換」というのはいらなくなったよ! 追記おわり versionは sbt-sonatype 0.…

Scala、sbt、playframeworkのversion切り替えツールの使いどころ

さて、以下の様なものがありますがScalaのversion切り替えツール https://github.com/yuroyoro/svmsbtのversion切り替えツール https://github.com/paulp/sbt-extrasplayframeworkのversion切り替えツール https://github.com/kaiinkinen/pvmそもそも、なぜ…

sbt-web pluginとplayframework2.3

rpscalaで「typesafehubのアカウントで色々web関連のplugin作ってるけどなんだろう?次期play2.3に向けての何かかな?」とか言いましたが、やはり大体予想通りだったようです。 PlayのMLでアナウンスがありましたhttps://github.com/typesafehub/sbt-web htt…

sbtのpreviousマクロ

最新のsbtに面白い機能が入っていたのを見つけたので紹介。このコミットhttps://github.com/sbt/sbt/commit/c669606999193ab06dec825733fbd68a3afe4d3b#diff-6c1b7251b13f9eae3a2fd7bd6d1481fcR146

sbt0.13.2-M1の新しいインクリメンタルコンパイル試したら素晴らしい結果がでた

140文字 ✕ 2で表すとこんな感じ sbt 0.13.1[info] Compiling 1 Scala source[info] Compiling 7[info] Compiling 84[info] Compiling 240[success] Total time: 259 s2014-01-10 12:56:08 via web sbt 0.13.2-M1[info] Compiling 1 Scala source[success] To…

sbtのコミッターになった

github時代にコミッターという言い方は(以下略新年早々めでたい。

sbtの密結合な内部アーキテクチャ

sbt

sbtというと、独特なSettingのシステム*1や、Scalaで記述する内部DSL*2ばかりが注目されがちです。それらは、初心者にわかりづらかったりして批判されることが多かったり、逆にsbtを使い慣れた人にとってはとても強力で面白い仕組みです。Settingのシステム…

sbtのscripted testとsbt-launch.jarのversion

sbt

@mao_instantlifeさんが finatraさんをsbtで動くようにできないもんだろうか2013-11-15 17:45:17 via webと言っていたので、sbt-pom-readerを紹介しつつ、自分でも試す

sbtのメソッド名が"雪だるま"な件

☃https://github.com/sbt/sbt/blob/v0.13.0/main/settings/src/main/scala/sbt/std/InputWrapper.scala#L27Unicode Character 'SNOWMAN' (U+2603) "The user should never see this method because it is compile-time only and only used internally by the…

sbtでプロジェクトファイルが変更されたらメッセージを表示する

sbtでは、プロジェクトファイル(build.sbtとかproject/build.scalaとかproject/plugin.sbtとか)を書き換えても、プロジェクトをreloadしないと設定が反映されません。デフォルトでは、全くお知らせもエラーも出さずに、reloadするまでずっと古い設定を使い続…

sbtでtest-onlyのような「補完が効いて、なおかつ補完の候補がキャッシュされるInputTask」を自作する方法

sbt

みなさん、sbtのtest-onlyとか使ってますか? http://www.scala-sbt.org/0.12.3/docs/Detailed-Topics/Testing#test-only 簡単にtest-onlyの動作を説明すると

sbtがinvokeDynamicに対応してなくて、"Unknown constant: 18" っていわれる

sbt

java8*1 をダウンロードして、sbt0.12.3で以下のようなjavaファイルコンパイルしたら、エラーになった。*2 追記 sbt0.13系では、Scala2.10.xになったので、対応してる、はず *1: ここ から、 "8 Build b88" というversion *2:もちろんjdk8で直接javacすれば…

sbt で fork in Test := true にした場合にSetupとCleanupが無効になるのはsbtの仕様?

この前の続きPlay2.1.0や2.1.1で、Tests.SetupやTests.Cleanupを設定しても有効にならない件

Play2.1.0や2.1.1で、Tests.SetupやTests.Cleanupを設定しても有効にならない件

表題の件にハマる 同じことにハマってる人がPlayのMLにいた∩(´∀`)∩ https://groups.google.com/d/msg/play-framework/_y1zwRBjl7A/OHWNHDN19FcJ 解決してなかった、ぬか喜びだった・・・(´;ω;`)ウッ… たぶん原因は、Play2.1.0からtestをforkしたJVMで実行…

play2 twitter bootstrap less lessEntryPoints

Play Framework(Scala)にTwitter Bootstrap(LESS)を組み込むなんとなく書き方気になったので、PathFinderのfilterを使って書き換えた

sbtで複数あるmainメソッドを全部実行する方法

sbt

shapelessのexampleが失敗するらしいという話があって、それ確かめるために以前自分がScalazでやった「わざわざプロジェクト別につくって、それぞれのmainを実行するコードを生成する」という方法でexampleが正常に実行できるかを確かめる↓

squeryl2scalikejdbc の設計構想

一気に作りあげようとしたのだけれど、結構面倒な問題に遭遇したので、一旦自分の考えをメモしてみるだけのなにか。 アドバイス募集。 追記: seratch さんからコメントもらったので参照するといいよ続き書いたよ squeryl2scalikejdbc作り始めた

sbt 0.13 の機能紹介

sbt

0.13.0-M1が出たので、0.12系からの違いや新機能を、大まかにまとめ。 注意 まだMilestoneなので、finalのリリースまでに細かい部分変わるかもしれません。 まだMilestoneなので、このblog書いている時点(2013-03-20)では、普通のユーザーが本格的に実用する…