gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:57:31 26 4
gpt4 key购买 nike

我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com