java - 在不同的 java maven 项目中使用 sbt 构建的 scala 项目的传递依赖项

标签 java scala maven sbt

我在 java maven 项目中包含了一个用 sbt 构建的 scala 库。该 jar 是使用 sbt publishM2 构建的。我可以很好地使用库中的 Scala 类,但是 Maven 不会将这些类的传递依赖项添加到类路径中。例如,其中一个 scala 类使用 joda-time,这在其 build.sbt 文件中指定如下:

libraryDependencies += "joda-time" % "joda-time" % "2.0"

然而,当使用来自 java 项目的 mvn test 运行测试时,我得到一个类未找到的异常:

java.lang.NoClassDefFoundError: org/joda/time/DateTime 

当查看由 sbt 构建并放入 ~/.m2/... 子目录中的 pom 时,我可以找到以下 joda-time 条目:

    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.0</version>
    </dependency>

我的理解是,maven 应该解决这些传递依赖并将它们添加到我当前项目的类路径中。我错过了什么?

最佳答案

从逻辑上讲,当您publishM2 时,SBT 会将您的库发布到您的m2 缓存,但不会发布其传递依赖项。如果您想将所有内容都放入您的 m2 存储库中,您可以:

关于java - 在不同的 java maven 项目中使用 sbt 构建的 scala 项目的传递依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908199/

相关文章:

java - 在 Swing 中为 MVC 模型使用撤消/重做?

java - 类转换异常 : DispatcherServlet cannot be cast to Servlet

scala - 斯卡拉调度以编程方式登录网站

java - 使用 google 闭包编译器 Java API

java - JUnit 之间的差异?

java - 对非单词字符分割进行异常(exception)处理

java - list.toArray() 同意将 A 类型的项目传输到 B[] 类型的数组

scala - 如何为具有默认参数的案例类编写 Scala 提取器?

scala - 貘自定义编解码器

Java无法找到shell脚本