sbt 没有解决依赖;路径正确,除了 ${package.type} 扩展名

sbt not resolving dependency; path correct except ${package.type} extension

sbt (0.13.8) 无法解决以下极其简单的依赖关系 build.sbt:

organization := "edu.umass.cs.iesl"

name := "nn-depparse"

version := "0.1-SNAPSHOT"

scalaVersion := "2.11.7"

resolvers += "IESL snapshot repository" at "https://dev-iesl.cs.umass.edu/nexus/content/repositories/snapshots/"

libraryDependencies += "cc.factorie" %% "factorie" % "1.2-SNAPSHOT"

parallelExecution := true

出于某种原因,它解析了以下路径:

https://dev-iesl.cs.umass.edu/nexus/content/repositories/snapshots/cc/factorie/factorie_2.11/1.2-SNAPSHOT/factorie_2.11-1.2-20151007.170205-28.${package.type}

而不是 jar 的正确路径:

https://dev-iesl.cs.umass.edu/nexus/content/repositories/snapshots/cc/factorie/factorie_2.11/1.2-SNAPSHOT/factorie_2.11-1.2-20151007.170205-28.jar

似乎 ${package.type} 被解释为文字文件扩展名,而不是变量 package.type 的任何内容,但我不知道为什么;我正在使用最简单的构建配置!据我所知,我周围没有任何奇怪的 sbt 配置(或者根本没有 - 我检查了 ~/.sbt,并且我在多台机器上尝试过 运行)。

factorie_2.11-1.2-20151007.170205-28.pom 中找到以下行:

<packaging>${package.type}</packaging>

我想 sbt 使用此设置来获取工件。

previous .pom file中有:

<packaging>jar</packaging>

所以,也许它是一个损坏的构建。

正如@kawty 所说,问题中的 pom 确实看起来格式不正确,但就修复您的 sbt 脚本而言,您可以将依赖行更改为:

libraryDependencies += "cc.factorie" %% "factorie" % "1.2-SNAPSHOT" artifacts( Artifact("factorie", "", "jar"))

手动指定所需工件的扩展名。