2017-05-07 10 views
8

私は現在SBTを使ってスカラプロジェクトを作成していますが、最近はCBTというビルドツールについて学びました。スカラビルドツールSBT対CBT

私がCBTのドキュメントから分かる1つの明確な利点は、ビルドファイルを書くことがスカラコードを書くことと同じくらい良いことです。

パフォーマンスやビルド時間などの両方のツールを比較して、それを使用している人から比較したいと思っています。

答えて

14

私はCBTの著者です。

TL; DR CBTは特定の分野ではより簡単で高速ですが、若くて練習が少ないことが証明されています。

ロングバージョン:

CBTは、MavenのまたはAntなどの古いツールに比べて表現力に同様の利益を与えながらSBTよりも使用することが非常に簡単であることを目指しています。私はCBTがここにいると信じています。また、タスク(メソッド)を参照するときに型の安全性を提供します.SBTでは、タスクを読み込んでいるスコープ内にタスクが定義されている場合と定義されていない場合があります。パフォーマンスは賢明CBTはbashからの起動時間(約100ms)がずっと速く、SBTの0.5s間隔ポーリングではなくOSプッシュ通知を介して即座にファイル変更に反応します。

CBTはこの時点でSBTより実証されておらず、粗いエッジがある場合があります。特に私はすぐに変更を目指す資料はほとんどありません。また、CBTビルドのオンライン事例もずっと少なくなります。 CBTのレポにはサンプルフォルダとテストがあります。あなたはまだいくつかのブラインドスポットwrtプラグインを見つけるかもしれません。すべてのリンター、コードフォーマッター、コンパイラー、パブリッシングプラグインが存在します。パッケージングとIDEサポートには依然として大きな改善が必要です。プラグインは非常に書きやすく、追加が簡単です。

CBTのソースコードは概念的には非常に簡単で、初心者にとっては使いやすいコードで、CBTは変更後に自動的に再構築され、すぐに利用できるようになっています。 SBTのコードベースは理解するのがはるかに難しく、ローカルで変更されたコードを実際に使用する方法がわからないので、スナップショットビルドを展開すると思います。

CBTは現在、タスクを実行していないか、プロジェクトを同時にビルドしていません。プロジェクト内でタスクを実行することは決してできませんが、異なるサブプロジェクトの同時コンパイルを開始する可能性があります。 SBTは可能な限りタスクを並列化する(または可能であると仮定します)。私はCBTのパフォーマンスがそれをしないことによって影響を受けていると認識していません。それは全体的にかなりうっすらです。

CBTは大規模プロジェクトでは戦闘テストされていません。 CBT自体は、> 10個のサブプロジェクトを持つマルチプロジェクトビルドですが、おそらくこれまで試みられている最大のものです。

CBTのソースコードをよく読んで、CBTを使って話したり、IDEを使用したり、自分で設定することはできません(数週間から数ヶ月で急速に改善しています)誰もまだ解決しなければならない、より小さい、表面的なユーザビリティのバグを修正するのに役立ちます。

より洗練された、サポートされている、文書化された、より複雑なツールが必要な場合は、コピー&ペースト可能なサンプルとオンラインのプラグインが増えます。よりシンプルで、使いやすく、使いやすく、文書化されていないコードベースのツールが必要な場合は、すぐに理解することができますが、今のところCBTで時折修正する必要があるかもしれません。

CBTについては、この最近の動画もあります:https://youtu.be/-2aMaAPQ35s

+0

私はあなたの答えは私に鮮明な画像を与えると思います。ありがとう。 –

関連する問題