java - module-info 的 sbt-assembly 合并策略
问题描述
我从事基于 Scala + SBT 的项目。
我正在尝试将包含多个子模块的项目打包到一个可运行的 fat-jar 中。我正在使用带有以下build.sbt
文件的 sbt-assembly 插件:
... 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 方面不是专家。我想知道是否有更好的解决方案,还是我必须创建一个自定义的?
我现在搜索了一段时间,找不到解决方案,但是这个 GitHub链接表明 sbt-assembly 没有为此提供现成的解决方案。
解决方案
推荐阅读
- jira - 将 Atlassian ALM 应用程序“不允许的页面”更改为自定义页面
- javascript - 如何在 Visual Studio 代码 javascript 片段中创建自定义函数片段?
- javascript - 从 Autodesk Forge Datavisualization API 禁用热图
- excel - 您能否帮助在 Pivot 中使用过滤后的名称创建工作簿
- mysql - mysql以不同的速度从mysqldump存储sql文件
- selenium-webdriver - 无法在隐藏的硒中找到下拉菜单
- java - 选择排序检查是否正确
- javascript - 覆盖已编译 Javascript 文件中的变量
- python - 使用正则表达式,在数据框中的列表中搜索模式并将匹配结果放入熊猫的新列中
- javascript - 没有“下一页”按钮且网址不变时的分页