Programing

SBT는 로컬 Maven 저장소에서 파일을 찾지 못합니다.

crosscheck 2020. 10. 31. 09:23
반응형

SBT는 로컬 Maven 저장소에서 파일을 찾지 못합니다.


내 로컬 저장소에있는 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를 로컬 저장소에서 보았습니다. 그 전에.

따라서 스칼라 파일은 다음과 같습니다.

import sbt._

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

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

}

(가능한 오류 이유를 제외하기 위해 Path.userHome을 하드 코딩했습니다. 예상대로 아무것도 변경하지 않았습니다).


file:지정자 뒤에 세 개의 슬래시가 필요 합니다. 두 번째와 세 번째 슬래시 사이에 선택적 호스트 이름이 있기 때문입니다. Wikipedia 에는 file:URL에 대한 좋은 설명이 있습니다.

의 일반적인 패턴은 "file://"+Path.userHome+"/.m2/repository"경로가로 시작 /하고 no를 포함 :하며 일반적으로 공백이없는 Unix 파일 시스템 가정 하기 때문에 문제 가 있습니다.

Windows 및 Linux / Unix 모두에서 작동하는 비 하드 코딩 경로를 가지려면 다음을 사용하십시오.

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

build.scala 또는 build.sbt 파일에이 줄을 추가하면됩니다.

resolvers += Resolver.mavenLocal

최신 버전의 sbt에서이 작업을 수행하려면 build.sbt에 다음을 추가하십시오.

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

프로젝트를 정의한 경우 설정에 해결 프로그램을 포함해야합니다. 글로벌 리졸버는 식별되지 않습니다.

예:

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

참고URL : https://stackoverflow.com/questions/10773319/sbt-doesnt-find-file-in-local-maven-repository-although-its-there

반응형