76

ローカル リポジトリにある Maven の依存関係に問題があります。

SBT はそれを見つけることができません。すでにログ レベルをデバッグに設定していますが、新しい情報は得られません。

ファイルはリポジトリにあります。コンソールからファイル エクスプローラーに貼り付けパスをコピーすると、そこに表示されます。

出力:

[debug]          trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom

[debug]                 tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom

[debug]         Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0
.0/naggati-2.0.0.pom

[debug]          trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar

[debug]                 tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar

[debug]         Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0
.0/naggati-2.0.0.jar

[debug]         Local Maven Repository: no ivy file nor artifact found for com.twitter#naggati;2.0.0

編集: http://code.google.com/p/simple-build-tool/wiki/LibraryManagementで説明されているように、プロジェクト/ビルドにscalaファイルを使用してパスを追加しました

「リポジトリとして追加すると、sbt はローカルの Maven リポジトリを検索できます。」

val mavenLocal = "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository"

これにより、sbt がローカル リポジトリに表示されます。そうでない前に。

したがって、scala ファイルは次のようになります。

import sbt._

class Foo(info: ProjectInfo) extends DefaultProject(info) {

val mavenLocal = "Local Maven Repository" at "file://c:/Users/userz/.m2/repository"

}

(考えられるエラーの理由を除外するために Path.userHome をハードコーディングしました。予想どおり、何も変更されませんでした)。

4

4 に答える 4

65

file:指定子の後に3つのスラッシュが必要です。これは、2番目と3番目のスラッシュの間に、オプションのホスト名があるためです。ウィキペディアfile:にはURLの良い説明があります

の典型的なパターンは"file://"+Path.userHome+"/.m2/repository"、パスがで始まり/、が含まれておらず:、通常はスペースが含まれていないUnixファイルシステムを想定しているため、問題が発生しています。

WindowsとLinux/Unixの両方で機能するハードコードされていないパスを使用するには、次を使用します。

"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"
于 2012-05-28T00:09:52.553 に答える
21

これを新しいバージョンのsbtで機能させるには、build.sbtに以下を追加します。

resolvers += "Local Maven Repository" at "file:///"+Path.userHome+"/.m2/repository"
于 2013-01-23T16:09:00.780 に答える
3

プロジェクトを定義したら注意してください。設定にリゾルバーを含める必要があります。グローバル リゾルバーは識別されません。

例:

lazy val core = (project in file("core")).
  settings(commonSettings: _*).
  settings(
    resolvers += Resolver.mavenLocal,
    name := "Core",
    libraryDependencies := coreDependencies
  )
于 2016-10-03T14:47:15.923 に答える