java - Maven项目中的Scala jar : Failure to find org. mongodb :casbah_2. 12 :jar:3. 1.1

标签 java mongodb scala maven sbt

这里是 Scala 和 sbt 新手。我创建了一个使用 casbah 的 Scala sbt 项目

libraryDependencies += "org.mongodb" %% "casbah" % "3.1.1"

查询 mongodb 并以 map 形式返回结果。我想在我的 Java maven 项目中使用此代码来操作从查询数据库中获得的结果。

我将其添加到我的 build.sbt 文件中:

publishMavenStyle := true

publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath + "/.m2/repository")))

在我的 .m2 本地存储库中安装 jar 文件。这是我执行 sbtpublish 时的输出:

> publish
[info] Packaging /Users/miguelvelez/Documents/Programming/Scala/Projects/mongo/target/scala-2.12/mongo_2.12-0.1.0-SNAPSHOT-sources.jar ...
[info] Done packaging.
[info] Main Scala API documentation to /Users/miguelvelez/Documents/Programming/Scala/Projects/mongo/target/scala-2.12/api...
[info] Packaging /Users/miguelvelez/Documents/Programming/Scala/Projects/mongo/target/scala-2.12/mongo_2.12-0.1.0-SNAPSHOT.jar ...
[info] Done packaging.
[info] Wrote /Users/miguelvelez/Documents/Programming/Scala/Projects/mongo/target/scala-2.12/mongo_2.12-0.1.0-SNAPSHOT.pom
[info] :: delivering :: edu.cmu.cs.mvelezce#mongo_2.12;0.1.0-SNAPSHOT :: 0.1.0-SNAPSHOT :: integration :: Sun Apr 09 13:58:46 EDT 2017
[info]  delivering ivy file to /Users/miguelvelez/Documents/Programming/Scala/Projects/mongo/target/scala-2.12/ivy-0.1.0-SNAPSHOT.xml
model contains 9 documentable templates
[info] Main Scala API documentation successful.
[info] Packaging /Users/miguelvelez/Documents/Programming/Scala/Projects/mongo/target/scala-2.12/mongo_2.12-0.1.0-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[info]  published mongo_2.12 to /Users/miguelvelez/.m2/repository/edu/cmu/cs/mvelezce/mongo_2.12/0.1.0-SNAPSHOT/mongo_2.12-0.1.0-SNAPSHOT.pom
[info]  published mongo_2.12 to /Users/miguelvelez/.m2/repository/edu/cmu/cs/mvelezce/mongo_2.12/0.1.0-SNAPSHOT/mongo_2.12-0.1.0-SNAPSHOT.jar
[info]  published mongo_2.12 to /Users/miguelvelez/.m2/repository/edu/cmu/cs/mvelezce/mongo_2.12/0.1.0-SNAPSHOT/mongo_2.12-0.1.0-SNAPSHOT-sources.jar
[info]  published mongo_2.12 to /Users/miguelvelez/.m2/repository/edu/cmu/cs/mvelezce/mongo_2.12/0.1.0-SNAPSHOT/mongo_2.12-0.1.0-SNAPSHOT-javadoc.jar
[success] Total time: 3 s, completed Apr 9, 2017 1:58:49 PM

然后我在我的 pom 文件中导入了这个依赖项:

<dependency>
    <groupId>edu.cmu.cs.mvelezce</groupId>
    <artifactId>mongo_2.12</artifactId>
    <version>0.1.0-SNAPSHOT</version>
</dependency>

当我运行mvncompile时,出现以下错误:

[ERROR] Failed to execute goal on project performance-mapper: Could not resolve dependencies for project edu.cmu.cs.mvelezce:performance-mapper:jar:0.1.0-SNAPSHOT: Failure to find org.mongodb:casbah_2.12:jar:3.1.1 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

我知道 casbah 有几个模块,我可以只导入其中几个模块,而不是全部。但是,按照 Casbah 中的文档进行操作,我添加了enterie库。我还看了Maven Central而且这个版本的casbah没有jar;仅独立模块。我在我的 pom 中添加了其中一些模块,但仍然遇到与上面相同的错误。 Maven 正在寻找完整的 jar 文件。

有办法解决这个问题吗?我以为我只能在 build.sbt 文件中添加我需要的 Scala 依赖项,但是当我这样做时出现了编译错误。有人有建议吗?

谢谢!

最佳答案

您需要确保项目中 Casbah 依赖项的类型为 pom。例如,在您的 pom.xml 中添加以下内容:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>casbah_2.11</artifactId>
    <version>3.1.1</version>
    <type>pom</type>
</dependency>

关于java - Maven项目中的Scala jar : Failure to find org. mongodb :casbah_2. 12 :jar:3. 1.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310144/

相关文章:

java - 2条更新语句几乎同时执行

java - LocalDate 序列化错误

mongodb - 为什么没有记录 mongo 连接字符串中的 "connect"选项?

mongodb - MongoDB find() 查询是否返回按创建时间排序的文档?

scala - isin 在 Spark 中的 withcolumn 函数中抛出 stackoverflow 错误

java - 不能在 Java 中使用 Scala 类

java - 将工作流添加到自定义 portlet(由 Plugins-SDK 创建)

c# - C# 中的协变和逆变

json - 错误 : Invalid JSON object

Scala - 动态对象/类加载