107

sbtgitリポジトリから依存関係を取得できると聞いたことがあります(どこかを覚えていれば、例も見たことがあります) 。

github から依存関係harrah/upを取得しようとしています。リポジトリはアーティファクト JAR ファイルを提供せず、sbt. 私が想像しているプロセスはsbt、ソース リポジトリをダウンロードしてビルドし、それを依存関係アーティファクトとして使用することです。

sbt実際にこのようなことができると想像しているかもしれません。それをできる?もしそうなら、どのように?

4

4 に答える 4

103

オペレーターを使用して、パッケージ化されていない依存関係をプロジェクトの依存関係として扱うことにより、パッケージ化されていない依存関係を GitHub からプロジェクトにインポートできますdependsOn。(これは、プリコンパイル済みライブラリの依存関係を含める方法とは異なります)。

#表記を使用してプルするブランチを指定できることに注意してください。私にとってうまく機能しているScala SBTコードは次のとおりです。

object V {
  val depProject = "master"
  // Other library versions
}

object Projects {
  lazy val depProject = RootProject(uri("git://github.com/me/dep-project.git#%s".format(V.depProject)))
}

// Library dependencies
lazy val myProject = Project("my-project", file("."))
.settings(myProjectSettings: _*)
.dependsOn(Projects.depProject)
.settings(
  libraryDependencies ++= Seq(...

sbt.boot.directory同じ外部プロジェクトに依存する複数の SBT プロジェクトがある場合は、不要な再コンパイルを避けるためにセントラルを設定する価値があることに注意してください (手順はこちらを参照)。

于 2012-01-12T00:48:35.007 に答える
77

はい。演算子をProject使用して依存関係を与えることができ、たとえば. または、プロジェクトを作成してから、ローカル コピーを で参照することもできます。詳細と例については、SBT wiki の「完全な構成」を参照してください。dependsOnRootProject(uri("git://github.com/dragos/dupcheck.git"))git cloneRootProject(file(...))

于 2011-09-26T03:40:45.147 に答える