スタンドアロンと、プロジェクトを依存関係または別のプロジェクトとして使用できるようにすることには違いがあります。最初のケースでは、 sbt-assemblyなどのプラグインを使用します。これにより、プロジェクト クラス ファイルとそのすべての依存関係を含む1 つのjar ファイルが作成されます。アプリケーションを作成すると、どこからでも実行できるダブルクリック可能な jar が得られます。
プロジェクト A を別のプロジェクト B の依存関係として使用する場合は、さまざまなオプションがあります。sbt package(@Channing Walton の回答)を使用して、A のクラス ファイルをパッケージ化することができます。.jar次に、結果のファイルをプロジェクト B のディレクトリにドロップできますlib。ただし、A にもライブラリが必要な場合は、プロジェクト B のライブラリにも配置されるようにする必要があります。
より良いアプローチは、プロジェクトを公開することです。を使用して、純粋にローカルマシンでそれを行うことができますsbt publish-local。packageこれにより、A の依存関係を含む POM ファイルとともに、別のプロジェクトの sbt からアクセスできる特別なローカル ディレクトリにによって生成された jar が格納されます。グループ ID (組織) と成果物 ID ( name) とプロジェクト A のバージョンです。たとえば、次のようになりますbuild.sbt。
name := "projecta"
version := "0.1.0-SNAPSHOT"
organization := "com.github.myname"
scalaVersion := "2.10.3"
publishMavenStyle := true
で公開した後sbt publish-local、次の依存関係をプロジェクト B に追加できます。
libraryDependencies += "com.github.myname" %% "projecta" % "0.1.0-SNAPSHOT"
純粋な Java プロジェクトがある場合は、Scala バージョン サフィックスを省略できます。つまり、プロジェクト A では次のようになります。
crossPaths := false
autoScalaLibrary := false
そして、プロジェクト B で:
libraryDependencies += "com.github.myname" % "projecta" % "0.1.0-SNAPSHOT"
(グループ ID と成果物 ID の間で 1%文字のみを使用)。
公開の詳細については、sbt ドキュメントを参照してください。