test / resources目录中的源将在Play 2中编译

时间:2012-10-07 18:52:13

标签: playframework playframework-2.0 sbt

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

我在Maven项目的src/test/resources中有一些测试资源,我在Play项目中移动到test/resources/(感谢Schleichardt为his answer on Stackoverflow)。

这适用于普通文件(文本,二进制数据......),但是现在我也遇到了{-1}}目录中的Java-Source文件的问题(我必须在项目中测试Java解析器)在不同的java源文件上)。当我在游戏中调用test/resources/时,这些文件也会被编译,因此我会收到错误。

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

2 个答案:

答案 0 :(得分:8)

由于您的测试资源目录位于编译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"

答案 1 :(得分:2)

如果你想添加测试资源,你应该修改project / Build.scala,方法是将以下内容添加到你的PlayProject ....设置(

不要忘记在这些线之间留空线。 不要忘记声明要删除源文件夹。 您还需要在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