[解決済み] SBTの正しい使い方を教えてください。
質問
押し入れから出ます! 私は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の最新バージョンを必要とするでしょう。
開始するための正気のポイントは何ですか、そしてそれはなぜですか?
どのファイルでそれを定義し、どのように見えるようにする必要がありますか? 私はこれを動作させることができることを知っていますが、すべてがどこに行くべきなのか (なぜそこに行くべきなのかはボーナスです) についての専門家の意見が本当に欲しいのです。
私はこれまで
SBT
を小さなプロジェクトで使い始めてから1年以上になります。私が使ったのは
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.3 は使用することを示します。
libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"
それから鉈を抜いて、あなたの進むべき道をハッキングし始めましょう。運が良ければ、同じ jar のいくつかに依存しているが互換性のないバージョンの jar を使用してしまうことはありません。Java のエコシステムを考えると、しばしばあらゆるものを含めてしまい、依存関係を排除したり、必要な依存関係が欠けていないことを確認したりするために、ある程度の努力が必要です。
簡単な例として、今、私は全く新しいプロジェクトを始めています。SLICKとScalaの最新機能を使いたいのですが、それにはおそらくSBTの最新版が必要でしょう。開始するための正常なポイントは何でしょうか?
私は、正気の沙汰とは、次のようなものだと思います。 sbtに対する免疫を徐々につけていくことだと思います。 .
しっかり理解すること。
-
スコープ形式
{<build-uri>}<project-id>/config:key(for task-key)
-
3 種類の設定 (
SettingKey
,TaskKey
,InputKey
の中の「タスク・キー」のセクションを読んでください。 http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def
この4つのページを常に開いておき、様々な定義や例をジャンプして調べられるようにしておくとよいでしょう。
- http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def
- http://www.scala-sbt.org/release/docs/Detailed-Topics/index
- http://harrah.github.com/xsbt/latest/sxr/Keys.scala.html
- http://harrah.github.com/xsbt/latest/sxr/Defaults.scala.html
を最大限に活用する
show
と
inspect
とタブ補完
を使って、設定の実際の値、その依存関係、定義、関連する設定に精通することができます。を使用して発見される関係が、そのようなものだとは思っていません。
inspect
を使用して発見できる関係は、どこにも文書化されていないと思います。もし、より良い方法があれば、私はそれについて知りたいのです。
関連
-
[解決済み] RDDの内容を印刷するには?
-
[解決済み] Scalaのforループは下降か減少か?
-
[解決済み] scalaは推論される型の「許容される複雑さ」にどのような制限を設けているのでしょうか?
-
[解決済み] Any、AnyVal、AnyRef、Objectの関係と、Javaコードでのマッピングについて教えてください。
-
[解決済み] HDFSではなく、ローカルファイルをsc.textFileで読み込む方法
-
[解決済み] sbtとGradleの比較 [終了しました]。
-
[解決済み] Scalaの自動リソース管理にはどのようなものがありますか?
-
[解決済み] IntelliJ IDEAでSBTを使用してUber JAR (Fat JAR)をビルドする方法は?
-
[解決済み] Scalaで2つ以上のリストをまとめてzipで圧縮することはできますか?
-
[解決済み] フォールドの早期中止
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Scalaのパターンマッチはなぜ変数で機能しないのですか?
-
[解決済み] Scalaのリストを作成するための好ましい方法
-
[解決済み] リスト[Option]からNoneを除外するには?
-
[解決済み] 単純な case class の順序を定義する簡単な慣用的方法
-
[解決済み] Scalaでリストを2つのフィールドでソートするには?
-
[解決済み] sbtの依存関係ツリーを見るには?
-
[解決済み] Scalaでサブアレイを取得する正しい方法は何ですか?
-
[解決済み] タイプダイナミックの仕組みと使い方を教えてください。
-
[解決済み] Scalaのtraitでvalとdefの使い分けは?
-
[解決済み] Spark Dataframeの最初の1000行を取得する方法はありますか?