web-dev-qa-db-fra.com

où trouver la bibliothèque téléchargée de sbt?

Où sbt place-t-il le pot téléchargé? J'essaie de demander à sbt de télécharger toutes les dépendances et de les mettre dans le répertoire lib/pour pouvoir les utiliser avec ScalaIDE. Cependant, après avoir exécuté sbt compile avec succès, je ne sais pas où trouver ces fichiers .jars téléchargés.

16
firstprayer

Toutes les nouvelles versions SBT (après 0.7.x) placent par défaut les fichiers JARS téléchargés dans le répertoire .ivy2 de votre répertoire de base.

Si vous utilisez Linux, il s’agit généralement de /home/<username>/.ivy2/cache.

Si vous utilisez Windows, il s’agit généralement de c:\Users\<username>\.ivy2\cache.

MODIFIER:

Voici un exemple tiré de l'un de mes projets, dans lequel je définis une tâche SBT qui copie les dépendances dans le dossier cible. Vous pouvez placer ce code dans votre fichier de définition de projet project/Build.scala. Vous devriez avoir quelque chose comme ceci dans votre fichier de définition de projet (plus d’informations sur www.scala-sbt.org):

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

object MyProjectBuild extends Build {

Le code suivant copie toutes vos bibliothèques dans un sous-répertoire deploy/libz en définissant une tâche deploy qui capture votre artefact de programme et toutes ses dépendances de chemin d'accès aux classes:

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)
17
axel22

Je trouve la dépendance de sbt de http://mvnrepository.com/

par exemple, vous voulez trouver MySQL Java Connector, vous pouvez effectuer une recherche dans le champ de recherche et choisir une version qui vous convient, puis la balise sbt:

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

si vous voulez trouver les fichiers téléchargés, dans Windows, C:\Users\<userName>\.ivy2\cache

dans linux est ~/.ivy2/cache

bonne chance

2
Rollen Holt

La référence ci-dessous est utile pour sbt.

https://www.scala-sbt.org/1.x/docs/Launcher-Configuration.html

Vous pouvez trouver que sbt.ivy.home est le paramètre et que la valeur par défaut est $ {user.home} /. Ivy2 /.

...

[référentiels] local typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/ , [organisation]/[module]/[révision]/[type] s/artefact. [ext], bootOnly maven-central sonatype-snapshots: https://oss.sonatype.org/content/repositories/snapshots

Répertoire [boot]: $ {sbt.boot.directory - $ {sbt.global.base - $ {user.home} /. sbt}/boot /}

[ivy] ivy-home: $ {sbt.ivy.home - $ {user.home} /. ivy2 /}

...

0
tabata