我想 sbt 生成两个包:
- WAR 文件,用于 Web 应用程序
- 包含命令行和批处理代码的 JAR 文件
这两个包共享许多相似的代码(业务逻辑)和依赖项,但当然 Servlet 方面仅在 WAR 中,命令行和批处理仅在 JAR 中。
我希望 JAR 自行运行,不需要外部依赖项(ala sbt-assembly
)。
我怎样才能做到这一点?
我想 sbt 生成两个包:
这两个包共享许多相似的代码(业务逻辑)和依赖项,但当然 Servlet 方面仅在 WAR 中,命令行和批处理仅在 JAR 中。
我希望 JAR 自行运行,不需要外部依赖项(ala sbt-assembly
)。
我怎样才能做到这一点?
您可以使用earldouglas/xsbt-web-plugin制作一个war 文件,并将sbt-assembly 用于胖JAR。您可能需要有点创意才能将一些文件包含在一个文件中,但从另一个文件中排除。
如果生成的包最后包含不同的库依赖项,例如包括独立 JAR 的 Jetty 或 Netty,我认为它需要是一个单独的子项目。请参阅多项目构建。