Какую настройку SBT можно использовать с Play! 2, которая будет включать в себя конкретные ресурсы из исходного дерева на пути к классу

Я хотел бы добавить параметр в сборку, которая скопирует определенные файлы из местоположения в дереве src, чтобы они были доступны в пути класса в dev и режиме производства. Я не хочу помещать их в папку public, потому что я не хочу, чтобы они были доступны для загрузки. И я не хочу помещать их в папку conf, потому что я хочу сохранить это чистым для файлов конфигурации.

Например:

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

Когда приложение скомпилировано, я хотел бы, чтобы путь класса включал в себя как файлы *.widget под classpath:views/website/, так и не view.scala.html, потому что это обрабатывается отдельно.

Я хотел бы сделать это, добавив параметр sbt, где я могу предоставить фильтр, Ive уже пробовал это и некоторые варианты, но пока не работал:

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

Внутри .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 файлы в пути к классам и он работает для нас.