2014-11-23 17 views
12

İndirilen kavanozu sbt nereye koyar? Ben tüm bağımlılıkları indirmek için sbt sormaya çalışıyorum ve bunları ScalaIDE ile kullanabilmem için ScalaIDE ile kullanabilirim, ancak sbt compile numaralı telefonu çalıştırdıktan sonra başarılı bir şekilde bu dosyaları nerede bulabilirim?sbt indirilen kütüphanesini nerede bulabilirim?

cevap

13

Tümü Yeni SBT sürümleri (0.7.x'dan sonra), indirilen JARS'yi giriş dizininizdeki .ivy2 dizinine koydu.

Linux kullanıyorsanız, bu genellikle /home/<username>/.ivy2/cache şeklindedir.

Eğer Windows kullanıyorsanız, bu genellikle c:\Users\<username>\.ivy2\cache'dur.

DÜZENLEME:

İşte bu hedef klasöre kopyalar bağımlılıkları bir SBT görev tanımlamak hangi benim projelerin birinden bir örnek. Bu kodu project/Build.scala proje tanım dosyasına yerleştirebilirsiniz. Sen proje tanımı dosyasında böyle bir şey olmalı (www.scala-sbt.org de daha fazla bilgi): Bir deploy görevi tanımlayarak bir deploy/libz alt dizine

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

object MyProjectBuild extends Build { 

Aşağıdaki kod kopyalar tüm kütüphaneler, Ben http://mvnrepository.com/ örneğin

gelen sbt bağımlılık bulmak

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

Thx olduğunu. Ama SBT'ye bağımlılıkları doğrudan/lib dizinine indirebileceğim herhangi bir yol var mı? – firstprayer

+0

Bir örnek ekledim, umarım yardımcı olur. – axel22

2

: yani program objeyi ve tüm sınıf yolu bağımlılıkları yakalar Eğer MySQL Java Connector bulmak istediğiniz, arama kutusunun oluşturulması arama yapabilir ve beğendiğiniz bir sürümünü seçebilir, o zaman sbt etiketi göreceksiniz: pencerelerde

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

indirdiğiniz kavanoz bulmak istiyorsanız, C:\Users\<userName>\.ivy2\cache

olduğunu linux

~/.ivy2/cache

iyi şanslar

İlgili konular