如何解决模块信息的sbt-assembly合并策略
我从事基于Scala + SBT的项目。
我正在尝试将包含多个子模块的项目打包到可运行的fat-jar中。我正在将sbt-assembly插件与以下build.sbt
文件一起使用:
... Project initializations...
osName := "win"
lazy val javafxVersion = "14"
libraryDependencies ++= Seq(...Managed dependencies...)
assemblyMergeStrategy in assembly := {
case PathList("meta-inf",xs@_*) => MergeStrategy.discard
case x => MergeStrategy.first
}
assemblyJarName in assembly := s"${name.value}_${version.value}.jar".replace("-SNAPSHOT","")
我需要上面的合并策略,否则我会遇到成千上万的冲突。但是,当涉及模块化(contain module-info.class)
文件的托管依赖项时,它将选择第一个。这产生了一个问题,因为实际上有19个依赖项已经过模块化(JavaFX是一个示例)。
我尝试创建自己的自定义合并策略,但在SBT方面不是专家。我想知道是否有更好的解决方案,还是我必须创建一个自定义的解决方案?
我搜索了一段时间,找不到解决方案,但是this GitHub 链接表明sbt-assembly没有为此提供现成的解决方案
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。