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.
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)
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
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 /}
...