4

我想在构建中添加一个设置,该设置将从 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
})
4

1 回答 1

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"

我有…… 在我们的 Build.scala 中像这样在类路径中有 mybatis xml 文件,它对我们有用。

于 2013-01-30T22:16:23.873 回答