6

我想将一个 Maven 项目迁移到 Play 2/sbt:

src/test/resources我在 Maven 项目中有一些测试资源,我test/resources/在 Play 项目中转移到了这些资源(感谢 Schleichardt对 Stackoverflow 的回答)。

这适用于普通文件(文本,二进制数据......),但现在我在目录中的 Java 源文件有问题test/resources/(我必须在不同的 java 源文件上测试我的项目中的 Java 解析器)。当我打电话test时,这些文件也会被编译,所以我会出错。

如何防止其中的文件test/resources/从 Play/sbt 编译?

4

2 回答 2

9

由于您的测试资源目录位于编译 java 源代码的目录中,因此您可以移动测试资源文件夹。将此添加到您的设置中:

resourceDirectory in Test <<= (baseDirectory) apply {(baseDir: File) => baseDir / "testResources"}

例如在 project/Build.scala 中:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
    resourceDirectory in Test <<= (baseDirectory) apply  {(baseDir: File) => baseDir / "testResources"}
)

通过以下方式控制控制台中的更改:

play "show test:resource-directory"
于 2012-10-07T20:48:43.663 回答
2

如果您想添加测试资源,您应该修改 project/Build.scala,将以下内容添加到您的 PlayProject .... .settings(

不要忘记在这些行之间留一个空行。不要忘记声明 Eclipse 源文件夹。您还需要在 PlayProject 行之前添加一个导入

import com.typesafe.sbteclipse.core.EclipsePlugin._ 

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(defaultScalaSettings:_*).settings(

    ,resourceDirectory in Test <<= baseDirectory(_ / "test-resources")

    ,EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource

)

在这之后你可以做

play test
play test-only xxx.yyy.zzz.TheTest
play eclipsify
于 2013-04-24T16:46:25.900 回答