2014-11-23 3 views

답변

13

모두 새 SBT 버전 (0.7.x 이후)은 기본적으로 다운로드 한 JARS를 홈 디렉토리의 .ivy2 디렉토리에 넣습니다.

Linux를 사용하는 경우 일반적으로 /home/<username>/.ivy2/cache입니다.

Windows를 사용하는 경우 일반적으로 c:\Users\<username>\.ivy2\cache입니다.

편집 :

여기에 내가 그 대상 폴더에 복사 종속성을 SBT 작업을 정의하는 내 프로젝트, 중 하나에서 예입니다. 이 코드를 project/Build.scala 프로젝트 정의 파일에 삽입 할 수 있습니다. 당신은 당신의 프로젝트 정의 파일에 이런 식으로 뭔가를해야한다 (www.scala-sbt.org에 대한 추가 정보를 원하시면)하십시오 deploy 작업을 정의하여 deploy/libz 하위 디렉토리

import sbt._ 
import Keys._ 
import Process._ 

object MyProjectBuild extends Build { 

다음 코드를 복사 모든 라이브러리를 나는 http://mvnrepository.com/ 예를 들어

에서 SBT 종속성을 찾을 수

val deployKey = TaskKey[Unit](
    "deploy", 
    "Deploys the project in the `deploy` subdirectory." 
) 

val deployTask = deployKey <<= (artifactPath in (Compile, packageBin), dependencyClasspath in Compile) map { 
    (artifact, classpath) => 
    val deploydir = new File("deploy") 
    val libzdir = new File("deploy%slib".format(File.separator)) 

    // clean old subdirectory 
    deploydir.delete() 

    // create subdirectory structure 
    deploydir.mkdir() 
    libzdir.mkdir() 

    // copy deps and artifacts 
    val fullcp = classpath.map(_.data) :+ artifact 
    def lastName(file: File) = if (file.isFile) file.getName else file.getParentFile.getParentFile.getParentFile.getName 
    for (file <- fullcp) { 
    println("Copying: " + file + "; lastName: " + lastName(file)) 
    if (file.isFile) IO.copyFile(file, (libzdir/lastName(file)).asFile); 
    else IO.copyDirectory(file, (libzdir/lastName(file))) 
    } 
} dependsOn (packageBin in Compile) 
+0

들으이다. 그러나 SBT가 내/lib 디렉토리에 의존성을 직접 다운로드한다고 말할 수있는 방법이 있습니까? – firstprayer

+0

예제를 추가했습니다. 도움이되기를 바랍니다. – axel22

2

: 그 프로그램 이슈와 모든 클래스 경로 종속성을 캡처 당신이 MySQL Java Connector을 찾으려면, 검색 상자를 형성 검색하고, 원하는 버전을 선택할 수 있습니다, 당신은 sbt 태그를 볼 수 있습니다 : 창에서

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.34" 

다운로드 한 단지를 찾으려는 경우는, C:\Users\<userName>\.ivy2\cache

입니다 리눅스에서

~/.ivy2/cache

행운

관련 문제