0

私のビルドは簡単です:

  lazy val stampleWebProject = play.Project("stample-web", appVersion, appDependencies,path = file("stample-web"))
    .dependsOn(stampleCoreProject,stampleSearchProject)
    .aggregate(stampleCoreProject,stampleSearchProject)

  lazy val stampleCoreProject = Project(id = "stample-core",base = file("stample-core"))

  lazy val stampleSearchProject = Project(id = "stample-search",base = file("stample-search"))

これらすべてのプロジェクトには、依存関係のある build.sbt ファイルがあり、scala ビルドはありません (私の知る限り無視されます)。

SBT (12.4) を起動すると、次のようになります。

[info] Set current project to stample-core (in build file:/home/sebastien/Bureau/Stample/)

> projects
[info] In file:/home/sebastien/Bureau/Stample/
[info]   * stample-core
[info]     stample-search
[info]     stample-web

> project stample-search
[info] Set current project to stample-search (in build file:/home/sebastien/Bureau/Stample/)

> projects
[info] In file:/home/sebastien/Bureau/Stample/
[info]     stample-core
[info]   * stample-search
[info]     stample-web

> project stample-core
[info] Set current project to stample-core (in build file:/home/sebastien/Bureau/Stample/)

> projects
[info] In file:/home/sebastien/Bureau/Stample/
[info]   * stample-core
[info]     stample-search
[info]     stample-web

> project stample-web
[info] Set current project to stample-search (in build file:/home/sebastien/Bureau/Stample/)
[stample-search] $ projects
[info] In file:/home/sebastien/Bureau/Stample/
[info]     stample-core
[info]     stample-search
[info]   * stample-web

[stample-search] $ compile
[info] Updating {file:/home/sebastien/Bureau/Stample/}stample-core...
[info] Resolving org.slf4j#slf4j-api;1.6.6 ...
[info] Done updating.
[info] Updating {file:/home/sebastien/Bureau/Stample/}stample-web...
[error] a module is not authorized to depend on itself: stample-search#stample-search_2.10;1.0
[error] (stample-web/*:update) java.lang.IllegalArgumentException: a module is not authorized to depend on itself: stample-search#stample-search_2.10;1.0
[error] Total time: 1 s, completed 26 août 2013 21:57:45

ここでいくつかのことがわかりません:

  • 私たちがデフォルトで参加しているプロジェクトはどのように選択されますか。ドキュメントは SBT 13.0 で追加されたようですが、12.4 のマルチビルド ドキュメントには表示されませんでした。

  • どうして projectstample-webと入力すると、私がいると表示されるのですかstample-search

  • 私の sbt コンソールに、私が参加しているプロジェクト用の特別な表示があるのはなぜですか (stample-web か stample-search か、よくわかりません...) (これはここに表示されます: [stample-search] $ compile、これは play プロジェクトに関連していますか?

  • 私のビルドではそれ自体に依存していないのに、なぜ stample-search をコンパイルできないのですか (Web プロジェクトをコンパイルしようとしていると思われますが、名前の問題か何かがあるのでしょうか?

これは SBT のバグですか。もしそうなら、新しい 13.0 バージョンを Play フレームワークで使用することは可能ですか?

4

1 に答える 1

5

Eugene Yokota は正しいです: stample-webscala ビルドで stample-web 名を設定したフォルダーに競合がありますが、そのフォルダーに間違った build.sbt があります。name := stample-search

于 2013-08-28T18:53:59.063 に答える