需求
Scala項目(用sbt構(gòu)建工具)中旷赖,希望package時(編譯打包)能產(chǎn)生src下所有文件(含resources的)株灸,以便于進行Lagom里runAll這類的測試吼和,但在生產(chǎn)環(huán)境下,則希望resources下的配置文件從Jar包中剔除窘疮,以便靈活配置袋哼。
辦法
修改sbt腳本,寫一個過濾函數(shù):
val excludeResources = List(".conf", ".xml")
val packIt = (f: (File, String)) => {
!excludeResources.exists(r => f._2.endsWith(r))
}
再在項目settings里或全局闸衫,對打包文件選擇進行過濾:
mappings in (Compile, packageBin) ~= (_.filter(packIt))
注意:另一種辦法并不完美解決
val f1 = (f: File) => {
f.getAbsolutePath.endsWith("resources")
}
excludeFilter in (Compile, packageBin) := new SimpleFileFilter(f1)
它會任何時候都不輸出resources目錄下的內(nèi)容涛贯,也就是說package完成后你在target/scala-2.11
目錄下看不到resources的東西。