我可以在Play中使用什么SBT构建设置! 2框架将包含类路径上源树的特定资源

时间:2013-01-30 10:39:24

标签: playframework-2.0 sbt

我想在构建中添加一个设置,该设置将从src树中的某个位置复制特定文件,以便它们在开发和生产模式的类路径中可用。我不想将它们放在public文件夹中,因为我不希望它们可供下载。而且我不想将它们放在conf文件夹中,因为我想保持配置文件的清洁。

例如:

app
  -- views
     -- website
        -- view.scala.html
        -- header-module.widget
        -- footer-module.widget

编译应用程序时,我希望类路径包含*.widget下的classpath:views/website/文件,而不是view.scala.html,因为它是单独处理的。

我想通过添加sbt设置来执行此操作,我可以提供过滤器,我已经尝试了这个和一些变体,但到目前为止还没有使用它:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
  // Add your own project settings here
  unmanagedResources in Compile <++= (sourceDirectory in Compile) map {
    base: File => ( base / "views" ** "*. widget ").get
})

1 个答案:

答案 0 :(得分:5)

以下内部.settings()应该有效:

// Add app folder as resource directory so that widget files are in the classpath
unmanagedResourceDirectories in Compile <+= baseDirectory( _ / "app" ),
// but filter out java and html files that would then also be copied to the classpath
excludeFilter in Compile in unmanagedResources := "*.java" || "*.html"

我有s.th.像我们的Build.scala中这样在类路径中包含mybatis xml文件,它对我们有效。