garysieling
garysieling

Reputation: 356

SBT Dependency Resolution Failure with vespa.ai

I've added Vespa to an sbt project:

libraryDependencies += "com.yahoo.vespa" % "vespa-http-client" % "6.225.3"

Which results in the following module resolution failure:

[warn]  Detected merged artifact: [FAILED     ] com.yahoo.vespa#component;6.225.3!component.container-plugin:  (0ms).
[warn]  Detected merged artifact: [FAILED     ] com.yahoo.vespa#vespajlib;6.225.3!vespajlib.container-plugin:  (0ms).
[warn] ==== local: tried
[warn] ==== local: tried
[warn] ==== public: tried
[warn] ==== public: tried
[warn] ==== local-preloaded-ivy: tried
[warn]   https://repo1.maven.org/maven2/com/yahoo/vespa/component/6.225.3/component-6.225.3.container-plugin
[warn]   C:\Users\gary\.sbt\preloaded\com.yahoo.vespa\vespajlib\6.225.3\container-plugins\vespajlib.container-plugin
[warn] ==== local-preloaded-ivy: tried
[warn] ==== local-preloaded: tried
[warn]   C:\Users\gary\.sbt\preloaded\com.yahoo.vespa\component\6.225.3\container-plugins\component.container-plugin
[warn]   file:/C:/Users/gary/.sbt/preloaded/com/yahoo/vespa/vespajlib/6.225.3/vespajlib-6.225.3.container-plugin
[warn] ==== local-preloaded: tried
[warn]   file:/C:/Users/gary/.sbt/preloaded/com/yahoo/vespa/component/6.225.3/component-6.225.3.container-plugin

Failed with both an older version and latest sbt (1.1.1).

Upvotes: 2

Views: 246

Answers (2)

gjoranv
gjoranv

Reputation: 4721

SBT uses the artifact's packaging type as file extension by default. Our pom.xml for the component artifact (and quite a few others) uses packaging type container-plugin, while the actual jar file of course has the standard jar suffix.

So you need to configure SBT manually with the file suffix for those artifacts. I don't know if there's a convenient way to do this for a set of dependencies at once, as I'm not an SBT expert. But for each individual artifact where you get this error, you could try the following:

libraryDependencies += "com.yahoo.vespa" % "component" % "6.225.3" artifacts( Artifact("component", "", "jar"))

I found it in this SO answer and haven't tested it myself. Perhaps you can find some useful information in the SBT reference manual on Using dependencies with artifacts.

Upvotes: 2

Jon
Jon

Reputation: 2339

Here are the dependencies of vespa-http-cient: https://github.com/vespa-engine/vespa/blob/master/vespa-http-client/pom.xml I don't know SBT very well, maybe you need to explicitly include those dependencies, or specify to include transitive dependencies.

Upvotes: 1

Related Questions