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

问题描述 投票:0回答:1

我有一个多项目的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

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

sbt sbt-assembly
1个回答
0
投票

我的错误肯定是在其他地方。以下行有效:

case PathList(ps @ _*) if ps.last endsWith "tonglu.conf"                        => MergeStrategy.discard
© www.soinside.com 2019 - 2024. All rights reserved.