7

我有以下项目构建:

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”库。

我必须去“客户端”项目中添加解析器才能找到库。有没有办法避免这种情况?

4

2 回答 2

1

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

对于企业使用,您可以防止您的流量流向图中某些依赖项引入的未知位置。

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

于 2014-04-18T16:31:28.730 回答
0

在过去的 7 年 10 个月中,这种情况是否发生了变化?我在自定义存储库中有一个传递库依赖项。对于它的直接客户端,我指定了一个解析器,并且存储库在发布时被写入客户端的 pom 文件。客户的客户似乎没有使用该信息来查找传递库。我必须“手动在上游添加解析器”。

于 2020-04-09T01:06:12.607 回答