繁体   English   中英

sbt-assembly排除依赖依赖

[英]sbt-assembly exclude dependsOn dependencies

我有一个项目,其中包含几个子项目,并且有许多依赖项,一个子项目将具有最多的开发(应用程序),并且生成完整的jar需要时间。 所以我想把胖子罐子分成两个罐子:

  • 沾上一个胖子
  • 应用精益罐

我希望创建一个deps项目,例如:

lazy val deps = (project in file("deps"))
 .settings(
   libraryDependencies ++= commonDependencies,
   assemblyJarName in assembly := "deps.jar",
   assemblyMergeStrategy in assembly := {
     case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
     case m if m.toLowerCase.matches("meta-inf.*\\.sf$") => MergeStrategy.discard
     case m if m.toLowerCase.startsWith("meta-inf/services/") => MergeStrategy.filterDistinctLines
     case m if m.toLowerCase.endsWith(".dct") => MergeStrategy.first
     case "reference.conf" => MergeStrategy.concat
     case _ => MergeStrategy.first
   }
).dependsOn(
   measurement,
   streaming,
   domain
)

和我的应用程序项目,如:

lazy val app = (project in file("my-app"))
  .settings(clientEventSettings)
  .settings(noPublishSettings)
  .settings(
    assemblyJarName in assembly := "my-app.jar",
    assemblyMergeStrategy in assembly := {
      case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
      case m if m.toLowerCase.matches("meta-inf.*\\.sf$") => MergeStrategy.discard
      case m if m.toLowerCase.startsWith("meta-inf/services/") => MergeStrategy.filterDistinctLines
      case m if m.toLowerCase.endsWith(".dct") => MergeStrategy.first
      case "reference.conf" => MergeStrategy.concat
      case _ => MergeStrategy.first
    })
  .dependsOn(  //<- but do not package??
    measurement,
    streaming,
    messagingDomain,
    messagingKafkaToolkit,
    domain,
    analyticsWebtrekk,
    commons
  )

面向编译的my-app项目依赖于其他子项目(deps),但应provided范围provided因为我不希望它由sbt-assembly打包。

我打算用libraryDependencies尝试,但我认为这意味着克隆commonDependencies,所有范围provided

sbt-assembly的自述文件提供了答案:在本节中: Splitting your project and deps JARs

assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false, includeDependency = false)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM