I'm having problems with a maven dependency which is in my local respository.
SBT can't find it. Already set log level to debug, but not getting anything new.
The files are in the repository. I copy paste paths from the console to file explorer and they are there.
The output:
[debug] trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom
[debug] tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom
[debug] Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0
.0/naggati-2.0.0.pom
[debug] trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar
[debug] tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar
[debug] Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0
.0/naggati-2.0.0.jar
[debug] Local Maven Repository: no ivy file nor artifact found for com.twitter#naggati;2.0.0
Edit: I added the path using scala file in project/build like described in http://code.google.com/p/simple-build-tool/wiki/LibraryManagement
"sbt can search your local Maven repository if you add it as a repository:"
val mavenLocal = "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository"
That made sbt look in the local repository. Before it didn't.
So the scala file looks like this:
import sbt._
class Foo(info: ProjectInfo) extends DefaultProject(info) {
val mavenLocal = "Local Maven Repository" at "file://c:/Users/userz/.m2/repository"
}
(I hardcoded Path.userHome to exclude possible error reason. As expected it didn't change anything).
Just add this line in the build.scala or build.sbt file
resolvers += Resolver.mavenLocal
You need three slashes after the file:
specifier. This is because between the second and third slash, you have an optional hostname. Wikipedia has a good explanation of file:
URL's
You're having a problem because the typical pattern of "file://"+Path.userHome+"/.m2/repository"
assumes a Unix filesystem, where the path begins with a /
, contains no :
, and usually contains no spaces.
To have a non-hardcoded path that works on both Windows and Linux/Unix, use:
"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"
To get this to work for newer versions of sbt, add the following to build.sbt:
resolvers += "Local Maven Repository" at "file:///"+Path.userHome+"/.m2/repository"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With