【发布时间】:2017-04-28 07:24:45
【问题描述】:
我曾经使用 maven 构建我的 scala 应用程序,但后来我决定切换到 sbt。我生成的 scala jar 被一个更大的 java 应用程序使用。
当使用 maven 构建 scala jar 时,它包含 META-INF\maven\myscalapackage\pom.xml。此 xml 包含依赖项信息,例如:
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
使用 sbt 构建此 jar 后,输出 jar 中不包含 pom。因此,由于缺少依赖项,主 java 应用程序无法编译。当然,我仍然可以向主 java 应用程序 pom 添加缺少的依赖项,但我更喜欢在 scala jar 本身中包含有关依赖项的信息。这可能与 sbt 吗?我尝试使用 sbt 程序集生成一个胖 jar,但它有 20 MB,所以这不是最好的主意。
最好的问候
【问题讨论】:
-
你是如何构建你的 scala jar 的?
publish*命令可以生成 pom 文件。
标签: scala maven jar sbt pom.xml