私はScalaに飛び込んでいて、sbtに気づきました。私はjava / groovyプロジェクトでGradleに非常に満足しており、Gradle用のscalaプラグインがあることを知っています。
ScalaプロジェクトでGradleよりもsbtを支持する良い理由は何でしょうか?
私はScalaに飛び込んでいて、sbtに気づきました。私はjava / groovyプロジェクトでGradleに非常に満足しており、Gradle用のscalaプラグインがあることを知っています。
ScalaプロジェクトでGradleよりもsbtを支持する良い理由は何でしょうか?
回答:
SBTとGradleの主な違いの1つは、依存関係の管理です。
キャッシュが混乱する可能性があることは事実ですが、Ivyがスナップショットの解決を理解していないことは事実ではありません。Eugeneはこの点について、おそらく管理者リストにある別のスレッドで説明しました。0.12で対処されたsbtの自動更新に問題があります。
私の知る限り、Ivyがサポートしていないのは、Mavenが行う方法でスナップショットを公開することです。私はこれを別の場所で述べたと思いますが、誰かが状況を改善したい場合、私の意見は、Gradleチームと協力して依存関係管理コードを再利用するのが最善であると考えています。
ただお知らせしておきますが、IdleとMavenのスナップショット依存関係の問題が、Gradleが最終的にIvyを独自の依存関係管理コードに置き換えた理由の1つでした。それは大きな仕事でしたが、多くのメリットをもたらしました。
このツイートは、すべての状況が将来進化する可能性があることを述べています。
マークは以前、SBTにIvyではなくGradleを使用することに興味があったと述べました。
私にとって、SBTの主な機能は次のとおりです。
fsc
)。~test
は、変更を保存するたびにプロジェクトを再コンパイルしてテストします。欠点は次のとおりです。
sbtはScala DSLであり、そのためScalaは一流の市民であるため、原則としてそれは適切だと思われます。
しかし、sbtはバージョン間の大きな互換性のない変更に悩まされています。そのため、タスクに適切に機能するプラグインを見つけてそれを機能させるのは困難です。
私が個人的にsbtをあきらめたのは、それが解決した以上の問題を引き起こしていたからです。実際にgradleに切り替えました。
図を行きます。
SBTとGradleはどちらも静的に型付けされた言語に基づいていますが、SBTにはいくつかの利点があります。