Scalaに最適なビルドツールはどれですか?それぞれの長所と短所は何ですか?プロジェクトで使用するものを決定するにはどうすればよいですか?
Scalaに最適なビルドツールはどれですか?それぞれの長所と短所は何ですか?プロジェクトで使用するものを決定するにはどうすればよいですか?
回答:
Mavenを使用してScalaプロジェクトを構築しています。これは、CIサーバーとうまく統合できるためです。もちろん、シェルスクリプトを実行してビルドを開始することもできますが、CIに移動したい他の情報がMavenから得られます。それが、ScalaプロジェクトでMavenを使用するために考えられる唯一の理由です。
それ以外の場合は、SBTを使用してください。同じ依存関係にアクセスできます(実際にはmavenの最良の部分であるIMHO)。インクリメンタルコンパイルも利用できます。プロジェクト内でシェルを起動する機能。これも素晴らしいことです。
ScalaMockはSBTでのみ機能し、おそらくJavaモックライブラリーではなくそれを使用したいと思うでしょう。その上、ビルドファイルで完全なscalaコードを記述できるため、SBTを拡張する方がはるかに簡単です。したがって、Mojoを記述するための厳密な手順をすべて実行する必要はありません。
要するに、CIサーバーへの緊密な統合が本当に必要でない限り、SBTを使用するだけです。
質問は、多くの意見を生み出すだけの危険にさらされています。要件の明確なリスト、または環境の説明、以前の知識などがあるとよいでしょう。
FWIW、このScalaメーリングリストのスレッドにはもっと多くの意見があります。
私の2cは:特定の要件がない場合はsbtで行く
gen-idea
タスク、そしてプロジェクトを再び開く:更新が完了しました。compile
、test
、run
、doc
、publish-local
、console
) - console
最高の機能の一つです。依存関係管理にIvyを使用しているためにsbtを嫌う人もいます(長所と短所についてはコメントできませんが、ほとんどの場合それは問題ではありません)。ビルドファイルを指定するためにsbtを嫌う人もいます。 XMLではなくScala DSL。sbtのフォーマットがv0.7からv0.10に変わったことにがっかりする人もいましたが、最初から移行しても移行には影響しません。