2012-05-23 123 views
6

我有以下项目建设:“transitive resolvers”如何与SBT一起使用?

import sbt._ 
import Keys._ 

object ProjectBuild extends Build { 

    val buildVersion = "0.1-SNAPSHOT" 

    val delvingReleases = "Delving Releases Repository" at "http://development.delving.org:8081/nexus/content/repositories/releases" 
    val delvingSnapshots = "Delving Snapshot Repository" at "http://development.delving.org:8081/nexus/content/repositories/snapshots" 
    val delvingRepository = if (buildVersion.endsWith("SNAPSHOT")) delvingSnapshots else delvingReleases 

    lazy val root = Project(
    id = "basex-scala-client", 
    base = file(".") 
).settings(

    organization := "eu.delving", 
    version := buildVersion, 

    resolvers += "BaseX Repository" at "http://files.basex.org/maven", 

    libraryDependencies += "org.basex" %  "basex" % "7.2.1", 
    libraryDependencies += "org.specs2" %% "specs2" % "1.7.1" % "test", 

    publishTo := Some(delvingRepository), 

    credentials += Credentials(Path.userHome/".ivy2"/".credentials"), 

    publishMavenStyle := true 
) 

} 

当我包括在其他项目所产生的图书馆,像这样:

"eu.delving"   %% "basex-scala-client"   % "0.1-SNAPSHOT" 

,我尝试构建一个项目,我得到一个错误提示我该项目引用的“org.basex%basex%7.2.1”库无法找到。

我必须去“client”项目中添加解析器,以便找到库。有没有办法避免这种情况?

回答

1

没有可传递的解析器,所以构建用户需要知道所有传递库依赖关系的所有解析器。这种方法的好处是,在开源项目中,它鼓励项目发布到与已知解析器相连的已知存储库之一。

对于公司使用情况,您可以防止您的流量进入图中某些依赖关系引入的未知位置。

要在组织内共享解析器设置,您可以创建一个组织范围的插件。

+1

只要确保我理解正确:当我使用另一个解析器中有依赖关系的库时,我需要手动添加解析器上游 - 是吗? –

相关问题