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依賴項,但是當我這樣做時出現編譯錯誤。有人提出建議嗎?
謝謝!
您需要在本地pom文件中包含Casbah作爲依賴項。 – Ross
也在您的本地pom.xml中將依賴類型設置爲'pom'。 – Ross
@Ross的兩個建議都在java項目中,對嗎? –