scalasbtopenimaj

Why can't sbt resolve OpenIMAJ dependency?


Here is the build.sbt I use in a project:

name := "FaceReg"

version := "1.0"

libraryDependencies += "org.openimaj" % "image-processing" % "1.2.1"

While updateing the project, sbt reports UNRESOLVED DEPENDENCIES:

[info] Resolving org.openimaj#image-processing;1.2.1 ...
[warn]  module not found: org.openimaj#image-processing;1.2.1
[warn] ==== local: tried
[warn]   /Users/jacek/.ivy2/local/org.openimaj/image-processing/1.2.1/ivys/ivy.xml
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/org/openimaj/image-processing/1.2.1/image-processing-1.2.1.pom
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.openimaj#image-processing;1.2.1: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) sbt.ResolveException: unresolved dependency: org.openimaj#image-processing;1.2.1: not found

What could be issue? How to solve it?


Solution

  • OpenImaj has its own repository and does not publish artifacts to the maven central (that's one of the few repositories consulted by sbt by default).

    Add the following resolvers to build.sbt to have the dependency resolved properly and you will be fine:

    resolvers += "OpenIMAJ maven releases repository" at "http://maven.openimaj.org"
    
    resolvers += "OpenIMAJ maven snapshots repository" at "http://snapshots.openimaj.org"
    

    Also, make sure you use only % in artifact, not %% because right now it looks like you're targeting specific Scala version in dependency and it's not what you would want for OpenImaj.