使用vespa.ai进行SBT依赖性解决失败

时间:2018-03-27 02:08:30

标签: scala sbt vespa

我已将Vespa添加到sbt项目中:

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

导致以下模块解析失败:

[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

旧版本和最新版本(1.1.1)都失败。

2 个答案:

答案 0 :(得分:2)

SBT默认使用工件的打包类型作为文件扩展名。我们的component工件(以及其他一些工件)的pom.xml使用打包类型container-plugin,而实际的jar文件当然具有标准的jar后缀。

因此,您需要手动为这些工件配置文件后缀的SBT。我不知道是否有一种方便的方法可以同时为一组依赖项执行此操作,因为我不是SBT专家。但对于出现此错误的每个工件,您可以尝试以下操作:

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

我在this SO answer找到了它并且没有自己测试过。也许您可以在Using dependencies with artifacts上的SBT参考手册中找到一些有用的信息。

答案 1 :(得分:1)

以下是vespa-http-cient的依赖关系: https://github.com/vespa-engine/vespa/blob/master/vespa-http-client/pom.xml 我不太了解SBT,也许您需要明确地包含这些依赖项,或者指定包含传递依赖项。

相关问题