1

sbt でマルチ プロジェクトをセットアップしようとしています。現時点では非常に単純です (私は学習目的でやっています) が、いくつか問題があります。

これがフォルダ構造です

MyProject
 |
 |-project
      |
      |- Build.scala

Build.scala ファイルの内容:

import sbt._
import Keys._

object RootBuild extends Build {
    lazy val root = Project(id = "root", base = file(".")) aggregate(bar, foo)

    lazy val foo = Project(id = "foo", base = file("foo"), dependsOn(bar))

    lazy val bar = Project(id = "bar", base = file("bar"))
}

実行するsbt clean compileと、次のエラーが表示されます。

[info] Done updating.
[info] Compiling 1 Scala source to C:\MyProject\project\target\scala-2.9.2\sbt-0.12\classes...
[error] C:\MyProject\project\Build.scala:7: parameter specified twice: aggregate
[error]     lazy val foo = Project(id = "foo", base = file("foo"), dependsOn(bar))
[error]                    ^
[error] one error found
[error] (compile:compile) Compilation failed
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? qTerminate batch job (Y/N)? 

このエラーが発生する理由がわかりません。これを修正する方法についてのアイデアはありますか?

4

1 に答える 1

2

dependsOnプロジェクトから移動しますProject(id = "foo", base = file("foo")).dependsOn(bar)。プロジェクト宣言にプロジェクトの依存関係を追加する場合は、Project ケース クラスの依存関係パラメーターを使用します。

dependencies: => Seq[ClasspathDep[ProjectReference]]

lazy val foo = Project(id = "foo", base = file("foo"), dependencies = Seq(bar))
于 2013-07-03T13:42:46.970 に答える