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