2017-04-09 69 views
1

Scala和sbt新手在這裏。我創建了一個使用卡斯巴Maven項目中的Scala jar:未能找到org.mongodb:casbah_2.12:jar:3.1.1

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

來查詢的MongoDB,並返回結果作爲地圖Scala的SBT項目。我想在我的Java Maven項目中使用此代碼來操縱從查詢數據庫中獲得的結果。

我將此添加到我的build.sbt文件:

publishMavenStyle := true 

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

在我當地的.m2回購安裝一個jar文件。下面是輸出,當我做sbt publish

> 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> 

當我運行mvn compile,我得到以下錯誤:

[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依賴項,但是當我這樣做時出現編譯錯誤。有人提出建議嗎?

謝謝!

+0

您需要在本地pom文件中包含Casbah作爲依賴項。 – Ross

+0

也在您的本地pom.xml中將依賴類型設置爲'pom'。 – Ross

+0

@Ross的兩個建議都在java項目中,對嗎? –

回答

0

您需要確保項目中的Casbah依賴項類型爲pom。例如,在您的pom.xml中添加以下內容:

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

我得到了和以前一樣的錯誤信息。我也用'''casbah_2.11''試過了,結果也一樣。 '''在https://repo.maven.apache.org/maven2中找不到org.mongodb:casbah_2.12:jar:3.1.1''' –

+0

如果你已經添加了依賴類型爲'pom',不應該在尋找一個'jar'文件。 – Ross