sbt汇编:使用MergeStrategy排除资源(多项目构建)

时间:2019-03-11 22:32:53

标签: sbt sbt-assembly

我有一个多项目sbt构建。

我在子项目的sbt控制台中。”

在此子项目的src/main/resources目录中,我有一个文件:tonglu.conf

我尝试了以下所有合并策略。它们都没有排除文件。它仍然出现在装配罐的根中

 assemblyMergeStrategy in assembly := {
    case PathList("src", "main", "resources", xs @ _*) => MergeStrategy.discard
    case PathList(ps @ _*) if ps.last endsWith ".html"=> MergeStrategy.first
    case PathList(ps @ _*) if ps.last endsWith "Log.class" => MergeStrategy.first

    case PathList("tonglu.conf", ps @ _*)   => MergeStrategy.discard
    case PathList(ps @ _*) if ps.last endsWith "tonglu.conf" => MergeStrategy.discard
    case PathList(ps @ _*) if ps  contains "tonglu.conf"  => MergeStrategy.discard
    case PathList(ps @ _*) if ps.toString()  contains "tonglu.conf"                   => MergeStrategy.discard
    case x => MergeStrategy.first

注意:我很乐意完全删除资源文件夹

1 个答案:

答案 0 :(得分:0)

我的错误一定是在其他地方。 以下行起作用:

case PathList(ps @ _*) if ps.last endsWith "tonglu.conf"                        => MergeStrategy.discard