これでクローゼットから降りてきます! SBTがわかりません。そこで、私はそれを言いました、今私を助けてください。
すべての道路はローマに通じており、SBTについても同じです。SBT
を開始するには、SBT
、SBT Launcher
、SBT-extras
などがあります。は、リポジトリを含めて決定するさまざまな方法です。 「最善の」方法はありますか?
時々私は少し迷子になるので私は尋ねています。 SBTのドキュメントは非常に詳細で完全ですが、build.sbt
またはproject/build.properties
またはproject/Build.scala
またはproject/plugins.sbt
をいつ使用するかわからないことがわかりました。
次に、面白くなります。Scala-IDE
とSBT
があります-これらを一緒に使用する正しい方法は何ですか?何ですか?最初に来るのは、鶏か卵ですか?
最も重要なことはおそらく、プロジェクトに含める適切なリポジトリとバージョンをどのように見つけるかですマシェットを取り出して、ハッキングを始めますか?すべてを含むプロジェクトと台所の流し台を含むプロジェクトを見つけることがよくありますが、それに気づきました-少しだけ迷っているのは私だけではありません。
簡単な例として、今、私は真新しいプロジェクトを始めています。 SLICK
とScala
の最新機能を使用したいのですが、これにはおそらく最新バージョンのSBTが必要になります。 始めるための正しい点は何ですか、そしてなぜですか?どのファイルでそれを定義し、どのように見えるべきですか?私はこれを機能させることができることを知っていますが、私は本当にすべてがどこに行くべきかについての専門家の意見を望みます(なぜそれが行くべきなのかはボーナスになるでしょう)。
私は1年以上、小さなプロジェクトでSBT
を使用しています。私はSBT
を使用し、次にSBT Extras
を使用しました(それにより、いくつかの頭痛が魔法のように消えたため)、なぜどちらか一方を使用する必要があるのかわかりません。私は、物事がどのように組み合わさっているか(SBT
とリポジトリ)を理解していないことに少し不満を感じています。これを人間の言葉で説明できれば、次の人がこのようにやって来るのを大変な苦労から救うことができると思います。
最も重要なことは、おそらく、プロジェクトに含める適切なリポジトリとバージョンをどのように見つけるかです。マシェットを引き出して、ハッキングを始めますか?私はすべてのものと台所の流しを含むプロジェクトを見つけることがよくあります
Scalaベースの依存関係については、筆者が推奨する方法を採用します。例: http://code.google.com/p/scalaz/#SBT は使用することを示します:
_libraryDependencies += "org.scalaz" %% "scalaz-core" % "6.0.4"
_
または https://github.com/typesafehub/sbteclipse/ に追加する場所に関する指示があります:
_addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0-RC1")
_
Javaベースの依存関係の場合、 http://mvnrepository.com/ を使用して何が表示されるかを確認し、[SBT]タブをクリックします。たとえば http://mvnrepository.com/artifact/net.sf.opencsv/opencsv/2. は、次のように使用することを示しています。
_libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"
_
次に、マシェットを引き出し、ハッキングを開始します。運が良ければ、同じjarのいくつかに依存しているが互換性のないバージョンのjarを使用することにはなりません。 Javaエコシステムを前提として、すべてとキッチンシンクを含めてしまうことがよくあります。依存関係をなくすか、必要な依存関係を見逃さないようにするには、ある程度の努力が必要です。
簡単な例として、今、私は真新しいプロジェクトを始めています。 SLICKの最新機能とScalaを使用したいと考えています。これには、おそらく最新バージョンのSBTが必要です。開始するための正しい点は何ですか?
正気のポイントは sbtへの耐性を徐々に構築する だと思います。
理解してください:
{<build-uri>}<project-id>/config:key(for task-key)
SettingKey
、TaskKey
、InputKey
)- http://www.scala-sbtの「タスクキー」というセクションをお読みください.org/release/docs/Getting-Started/Basic-Defジャンプしてさまざまな定義や例を調べられるように、これらの4ページは常に開いたままにしてください。
show
とinspect
とタブ補完機能を最大限に活用して、設定の実際の値とその依存関係を理解する、定義および関連設定。 inspect
を使用して見つけられる関係がどこにも文書化されているとは思いません。もっと良い方法があれば知りたいです。
私がsbtを使う方法は:
MyProject.scala
ファイルを含むproject
フォルダを作成します。私はbuild.sbt
アプローチよりもこれを好みます-scalaであり、より柔軟ですproject/plugins.sbt
ファイルを作成し、IDEに適切なプラグインを追加します。 sbt-Eclipse、sbt-idea、またはensime-sbt-cmdのいずれか。Eclipse、intellij、またはensimeのプロジェクトファイルを生成できます。IDEプロジェクトファイルはsbtによって生成されるため、チェックインする必要はありませんが、そうしたい理由があるかもしれません。
このように設定された例を見ることができます here 。
Typesafe Activatorを使用します。これは、プロジェクトテンプレートとシードに付属しているsbtを呼び出すための優れた方法です。 https://typesafe.com/activator
Activator new
Fetching the latest list of templates...
Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-Java
2) minimal-scala
3) play-Java
4) play-scala
(hit tab to see a list of all templates)