Locked History Actions

sbt/Getting-Started-Directories

ディレクトリ構造

https://github.com/harrah/xsbt/wiki/Getting-Started-Directoriesの訳(2011/10/27時点)

ここでは、既にsbtをインストールし、「Hello, World」を表示できたものとするよ。

ベースディレクトリ

sbt用語の「ベースディレクトリ」とは、プロジェクトを含むディレクトリのことだ。 つまり、hello/build.sbtとhtllo/hw.scalaを含むプロジェクトの場合、helloが君のベースディレクトリ、ということ。

ソースコード

hello/hw.scalaのように、ソースコードは、プロジェクトのベースディレクトリに置くこともできる。 しかし、リアルなプロジェクトにおいて、ほとんどの人はこんなことはしないだろう。

sbtは、デフォルトではMavenと同じディレクトリ構造を前提とする。 (以下のパスはベースディレクトリ相対であることに注意)。

src/
  main/
    resources/
       <メインのjarに格納されるべきファイル>
    scala/
       <メインのscalaソース>
    java/
       <メインのjavaソース>
  test/
    resources
       <テスト用のjarに格納されるべきファイル>
    scala/
       <テスト用scalaソース>
    java/
       <テスト用javaソース>

src/下の他のディレクトリは無視される。それに加えて、「隠し」ディレクトリも無視されるよ。

sbtビルド定義ファイル

既にプロジェクトベースディレクトリにあるbuild.sbtについては述べた。 他のsbtファイルはprojectサブディレクトリに入れる。

プロジェクトは.scalaファイルを含むことができる。 これは.sbtファイルと結合されて完全なビルド定義をするものだ。 「.scala build definitions」を参照のこと。

build.sbt
project/
  Build.scala

project/の下に.sbtファイルが存在することもあるが、これはプロジェクトベースディレクトリの.sbtファイルとは異なるものだ。 先に背景となる情報が必要なので、このことについては後で説明するよ。

プロダクトのビルド

生成物(compiled classes, packaged jars, managed files, caches, and documentation)は、デフォルトでは、targetディレクトリに書き込まれる。

バージョンコントロールの設定

君の.gitignore(あるいは他のバージョンコントロールシステムでの同じようなファイル)は、以下を含む必要がある。

target/

最後の/が必要なことに注意(ディレクトリのみにマッチするようにするため)。そして、最初の/はつけちゃだめだ(project/target/にマッチさせるため)。

次はsbtの実行