繁体   English   中英

与SBT子项目和Scala一起玩2.2.2

[英]Play 2.2.2 with SBT sub projects and Scala

我正在尝试使用Play 2.2.2和SBT 0.13.1设置多模块开发环境

我的项目结构如下所示:

myProject
 └ build.sbt
 └ app - this code works perfect
 └ modules
   └ testModule
     └ build.sbt
     └ src
       └ main
         └ scala - here I have simple object Foo with method which returns string
       └ test
         └ scala - here is Spec2 test for Foo object with JUnitRunner
 └ test - here is Spec2 tests for app and these tests also works fine

root中的build.sbt包含:

import play.Project._

name := "FooBar"

version := "1.0"

playScalaSettings

lazy val main = project.in(file("."))
  .dependsOn(testModule).aggregate(testModule)

lazy val testModule = project.in(file("modules/testModule"))

模块中的build.sbt仅包含:

import play.Project._

name := "FooBar-module"

playScalaSettings

当我试图使用testModule中的代码时,编译器告诉我它甚至找不到来自这个模块的包。 同时在运行测试时我得到了

没有为testModule / test运行测试:test

但是如果我在testModule中编写无效代码,我将开始从这个模块中获取错误,因此模块肯定是编译的。

这可能是个问题? SBT配置看起来正确

playScalaSettings包含大多数路径的设置。 这包括将测试源设置为路径/test (请参阅doc中的默认设置 )。 但是,在您的布局中,测试源位于src/test 所以sbt不会在测试中查找这些文件。

如果您的模块是播放项目,则相应地更改文件夹布局或配置路径以匹配您的布局。 如果没有删除playScalaSettings行。

您可以像这样设置测试源路径:

scalaSource in Test <<= baseDirectory / "src" / "test" / "scala"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM