2016-11-15 1 views
1

SBT로 첫 프로젝트를 만들려고합니다. 나는 그것에 항아리를 추가해야합니다. 내 build.sbt은 다음과 같습니다SBT 누락 된 종속성

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

name := "abc" 

version := "1.2.3" 

scalaVersion := "2.11.6" 

libraryDependencies ++= Seq(
    "org.slf4j" % "slf4j-log4j12" % "1.7.1", 
    "org.slf4j" % "slf4j-api" % "1.7.1" 
) 

하지만 프로젝트 임 종속성이 클래스 경로에 존재하지 않기 때문에 발생합니다 가정하면

object slf4j is not a member of package org 

말 컴파일되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 감사.

+0

스칼라에 오신 것을 환영합니다. 종속성을 다운로드 할 수 없다면 메시지는'unresolved dependency ....'를 읽을 것입니다. 'slf4j'를 사용하려고 할 때마다 import 문을 게시 할 수 있습니까? – TheM00s3

+0

import org.slf4j. {Logger, LoggerFactory} – aiguy

+1

구성을 다시로드 했습니까? – mfirry

답변

0

대신

import _root_.org.slf4j.{Logger, LoggerFactory} 

이 당신을 위해 작동하는지 알려줘 다음 import 문을 사용하십시오.

+0

아니요, 아무런 차이가없는 것처럼 보입니다. – aiguy

0

IntelliJ를 사용하는 경우 View > Tools Window > SBT으로 이동하고 SBT 창에서 새로 고침 아이콘 (툴팁에는 모든 프로젝트 새로 고침)이 표시됩니다.

그런 다음 다시 작성하십시오. 명령 줄에서 sbt compile을 실행하는 경우 질문을 수정하여 전체 오류 출력을 포함시킵니다.

slf4j가 로컬 클래스 경로에서 확인되지 않습니다. SBT (중앙 저장소에서 Ivy를 사용하여)가 중앙 메이븐 저장소에서 가져온 것입니다. 다른 의견에서 언급했듯이, 귀하의 편집자가 귀하의 build.sbt 파일의 이전 버전을 사용하여 프로젝트를 컴파일하려고하는 것 같습니다. 따라서 종속성을 끌어 내지 않습니다.

IntelBI에서 build.sbt을 수정할 때 프로젝트를 새로 고칠 것인지 묻는 메시지가 맨 위에 표시됩니다. 다른 편집기를 사용하는 경우 다른 위치에있을 수 있습니다. 명령 줄에서 sbt을 실행하면 현재 저장된 버전 build.sbt이 항상 사용됩니다.

1

실제로 디렉터리 구조가 잘못되었습니다. 내 src 디렉터리가 프로젝트 아래에/문제가있는 것 같습니다. 원본을 잘못된 위치에 복사했을 수 있습니다.

+0

'project /'에있는 소스는 빌드 정의의 일부이며, 주요 코드베이스의 일부는 아닙니다. –