美文网首页
授业:sbt package时剔除resources下配置文件

授业:sbt package时剔除resources下配置文件

作者: 贲少 | 来源:发表于2018-02-22 17:06 被阅读0次

    需求

    Scala项目(用sbt构建工具)中,希望package时(编译打包)能产生src下所有文件(含resources的),以便于进行Lagom里runAll这类的测试,但在生产环境下,则希望resources下的配置文件从Jar包中剔除,以便灵活配置。

    办法

    修改sbt脚本,写一个过滤函数:

    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目录下的内容,也就是说package完成后你在target/scala-2.11目录下看不到resources的东西。

    相关文章

      网友评论

          本文标题:授业:sbt package时剔除resources下配置文件

          本文链接:https://www.haomeiwen.com/subject/rrsztftx.html