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

推移的なリゾルバーがないため、ビルド ユーザーはすべての推移的なライブラリ依存関係のすべてのリゾルバーを知る必要があります。このアプローチの利点は、オープンソース プロジェクトでは、プロジェクトが既知のリゾルバーに接続された既知のリポジトリの 1 つに公開することを奨励することです。

企業で使用する場合、グラフの下の依存関係によって導入された未知の場所にトラフィックが移動するのを防ぐことができます。

組織内でリゾルバー設定を共有するには、組織全体のプラグインを作成できます。

于 2014-04-18T16:31:28.730 に答える
0

この7年10ヶ月で状況は変わりましたか?カスタム リポジトリに推移的なライブラリ依存関係があります。直接のクライアントについては、リゾルバーを指定し、公開時にリポジトリがクライアントの pom ファイルに書き込まれます。クライアントのクライアントは、推移的なライブラリを見つけるためにその情報を使用していないようです。「手動でリゾルバーをアップストリームに追加」する必要があります。

于 2020-04-09T01:06:12.607 に答える