101

私はこれでクローゼットから出ています!SBTはわかりません。そこで、私はそれを言った、今私を助けてください。

すべての道はローマに通じており、それは SBT でも同じです。まず、、、 などがあります。次に、リポジトリを含めて決定するさまざまな方法がありますSBT「最善の」方法はありますか?SBTSBT LauncherSBT-extras

たまに迷ってしまうので質問させてください。build.sbtSBT のドキュメントは非常に詳細で完全ですが、いつorproject/build.propertiesまたはproject/Build.scalaorを使用すればよいかわかりませんproject/plugins.sbt

そしたら楽しくなるし、あるしScala-IDE一緒に使う正しい使い方はSBT?鶏が先か、卵が先か。

おそらく最も重要なのは、プロジェクトに含める適切なリポジトリとバージョンをどのように見つけるかということです。マシェットを抜いて、前に進み始めますか? すべてのものと台所の流しを含むプロジェクトをよく見つけますが、少し迷っているのは私だけではないことに気づきます。

簡単な例として、私は今、まったく新しいプロジェクトを開始しています。SLICKandの最新機能を使用したいのですがScala、これにはおそらく最新バージョンの SBT が必要です。始めるための正気のポイントは何ですか? またその理由は何ですか? どのファイルで定義する必要があり、どのように見えるべきですか? 私はこれを機能させることができることを知っていますが、すべてがどこに行くべきかについて専門家の意見が本当に欲しいです(なぜそれが行くべきかはおまけになります)。

私はSBT1年以上にわたって小規模なプロジェクトに使用しています。私はSBTand thenを使用しましたSBT Extras(いくつかの頭痛が魔法のように消えたので) が、なぜどちらか一方を使用する必要があるのか​​わかりません。物事がどのように組み合わされるか (およびリポジトリー) を理解していないことに少し不満を感じていSBTます。これが人間の言葉で説明できれば、次の人がこの道を行く多くの困難を救うことができると思います。

4

4 に答える 4

30

おそらく最も重要なのは、プロジェクトに含める適切なリポジトリとバージョンをどのように見つけるかということです。マシェットを抜いて、前に進み始めますか? すべてのものと台所の流しを含むプロジェクトをよく見つけます

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.3は、次を使用することを示します。

libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"

次に、マシェットを引き抜き、前方へのハッキングを開始します。運が良ければ、同じ jar の一部に依存しているが互換性のないバージョンの jar を使用することにはなりません。Java エコシステムを考えると、多くの場合、すべてのものと台所の流しを含めることになり、依存関係を排除したり、必要な依存関係が失われていないことを確認したりするには、ある程度の努力が必要です。

簡単な例として、私は今、まったく新しいプロジェクトを開始しています。SLICK と Scala の最新機能を使用したいのですが、これにはおそらく最新バージョンの SBT が必要です。始めるための正気のポイントは何ですか? またその理由は何ですか?

正気のポイントは、sbt に対する免疫を徐々に構築することだと思います。

次のことを理解していることを確認してください。

  1. スコープ形式{<build-uri>}<project-id>/config:key(for task-key)
  2. 3 種類の設定 ( SettingKeyTaskKey、 ) - http://www.scala-sbt.org/release/docs/Getting-Started/Basic-DefInputKeyの「タスク キー」というセクションを参照してください。

これらの 4 ページを常に開いたままにしておくと、ジャンプしてさまざまな定義や例を調べることができます。

  1. http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def
  2. http://www.scala-sbt.org/release/docs/Detailed-Topics/index
  3. http://harrah.github.com/xsbt/latest/sxr/Keys.scala.html
  4. http://harrah.github.com/xsbt/latest/sxr/Defaults.scala.html

showおよびinspect タブ補完を最大限に活用して、設定の実際の値、それらの依存関係、定義、および関連する設定に慣れてください。inspect使用して発見する関係がどこにも文書化されているとは思いません。もっと良い方法があれば、それについて知りたいです。

于 2012-07-11T07:52:47.740 に答える
26

私がsbtを使用する方法は次のとおりです。

  1. sbt-extrasを使用- シェル スクリプトを取得してプロジェクトのルートに追加するだけ
  2. sbt をセットアップするためprojectのファイルを含むフォルダーを作成します。MyProject.scala私はアプローチよりもこれをはるかに好みますbuild.sbt-それはscalaであり、より柔軟です
  3. ファイルを作成project/plugins.sbtし、IDE に適切なプラグインを追加します。sbt-eclipse、sbt-idea、または ensime-sbt-cmd のいずれかで、Eclipse、intellij、または ensime のプロジェクト ファイルを生成できます。
  4. プロジェクトのルートで sbt を起動し、IDE のプロジェクト ファイルを生成します。
  5. 利益

IDE プロジェクト ファイルは sbt によって生成されるため、わざわざチェックインする必要はありませんが、そうしたい理由があるかもしれません。

このように設定された例をここで見ることができます。

于 2012-07-10T20:34:58.170 に答える
0

プロジェクトテンプレートとシードに付属する、sbt を呼び出すための凝った方法である Typesafe Activator を使用します: 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)
于 2014-09-17T07:49:25.807 に答える