2012-05-27 39 views
61

ローカルのリポジトリにあるmaven依存関係に問題があります。SBTはローカル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 

編集:私はあなたのようにそれを追加した場合、ローカルのMavenリポジトリを検索することができhttp://code.google.com/p/simple-build-tool/wiki/LibraryManagement

「SBTで説明したようにを構築/プロジェクトでScalaのファイルを使用してパスを追加しましたリポジトリ: "

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をハードコード、それは何も変更しませんでしたが期待通り。)。

+0

あなたはbuild.sbt – leedm777

+0

リポジトリが追加され、ローカルのMavenリポジトリを追加する必要があり、そうでない場合、スクリプトがファイルをそこに見ていないでしょう。 – Ixx

+0

依存関係を探すためにsbtに指示する行はどのようにしていますか? ... - > defaultのようなものがあれば、そこからデフォルトを削除してください。 – fmpwizard

答えて

57

file:指定子の後に3つのスラッシュが必要です。これは、2番目と3番目のスラッシュの間にオプションのホスト名があるためです。 Wikipedia"file://"+Path.userHome+"/.m2/repository"の典型的なパターンは、パスが/で始まるUnixファイルシステムを、想定しているので、あなたが問題を抱えているfile: URLの

の良い説明があり、何:を含まず、通常はスペースが含まれていません。 build.sbtに以下を追加し、これはSBTの新しいバージョンのために働くことを得るために

"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository" 
+0

ありません。 – pferrel

+0

は、Mac上で私の問題を解決したプロジェクトで – Daniel

21

:使用、WindowsとLinux/Unixの両方で動作する非ハードコードパスを持っている

resolvers += "Local Maven Repository" at "file:///"+Path.userHome+"/.m2/repository" 
+1

3つのスラッシュがトリックでした! – Esk

+1

どんなにコンパイルSBT行っているとき、私は、私はまだ、このエラーが出る何をすべきか: [警告] :::::::::::::::::::::::::::::: :::::::::::::::: [警告] ::未解決の依存関係を:: [警告] :::::::::::::::::::: :::::::::::::::::::::::::: [警告] :: com.sanoma.cda#1 maxmind-geoip2-scala_2.11; 1.3.2:見つからない [警告] :::::::::::::::::::::::::::::::::::::::::::: :: [トレース]スタックトレースを抑制:最後に実行する*:完全な出力を更新する。 [エラー](*:更新)sbt.ResolveException:未解決の依存関係:com.sanoma.cda#maxmind-geoip2-scala_2.11; 1.3.2:見つからない – bashan

+1

は私のためには機能しません – pferrel

110

だけbuild.scalaまたはbuild.sbtファイルに次の行を追加します

resolvers += Resolver.mavenLocal 
+1

これは私にとっては役に立ちません最新のSBTと – Dyin

+2

これはどれですか?私は0.13.11とそれを使用し、それは正常に動作します。 Resolver.mavenLocal'が私の作品=: – marios

+0

は、プロジェクトにグローバルで – pferrel

3

あなたは広報を持っているときに気をつけろ定義されている場合は、リゾルバを設定に含める必要があります。グローバルリゾルバは特定されません。

例:

lazy val core = (project in file("core")). 
    settings(commonSettings: _*). 
    settings(
    resolvers += Resolver.mavenLocal, 
    name := "Core", 
    libraryDependencies := coreDependencies 
) 
+0

は私のためには機能しませんが、プロジェクトと何か関係があります。 – pferrel

+1

ありがとうございました。 リゾルバをcommonSettingsに追加すると、すべての定義済みのプロジェクトは依存関係のためにローカルなMavenリポジトリを調べることができます。 – raevilman

関連する問題