【发布时间】:2021-10-08 01:35:21
【问题描述】:
这是我的 repo 的包结构:
src
|-- main
|-- scala
|-- me.sparker0i.spark
|-- runner
|-- Runner.scala
|-- utils
|-- Constants.scala
|-- DatabaseUtils.scala
|-- service
|-- Service.scala
|-- Transform.scala [extends Service]
|-- Fetch.scala [extends Service]
|-- <32 more>
|-- Test.scala
我想将此应用程序拆分为两个,这样一个应用程序仍然是核心,而另一个使用核心 jar 作为libraryDependencies:
核心回购结构:
src
|-- main
|-- scala
|-- me.sparker0i.spark
|-- runner
|-- Runner.scala
|-- utils
|-- Constants.scala
|-- DatabaseUtils.scala
|-- service
|-- Service.scala
|-- Test.scala
独立回购:
src
|-- main
|-- scala
|-- me.sparker0i.spark
|-- service
|-- Transform.scala [extends Service from Core Repo JAR]
|-- Fetch.scala [extends Service from Core Repo JAR]
|-- <32 more>
现在在独立存储库中,我在 libraryDependencies 中引用了核心存储库 JAR。 我需要 Core JAR 来在我们的 Jenkins CICD 中运行独立存储库的测试用例,但在我需要打包独立存储库时不需要。
当我sbt assembly时,我如何确保我没有在独立JAR中获取核心JAR的内容?原因是我将在 Core JAR 中运行 Main 类,但也将提供 Independent JAR 作为类路径。
有没有什么方法可以使用 sbt 实现上述要求?
【问题讨论】:
标签: scala sbt sbt-assembly