71 votes

sbt : Comment puis-je ajouter un fichier jar de système de fichiers local à mon projet ?

J'ai une bibliothèque compilée dans un jar (pas un projet sbt, juste le fichier jar) qui n'est pas disponible sur un référentiel.

Existe-t-il un moyen simple d'ajouter directement une référence au fichier jar dans le système de fichiers/projet ?

69voto

Fred Dubois Points 847

Vous pouvez mettre le jar dans le dossier lib de votre projet (créez-le s'il n'existe pas), il apparaîtra alors sur le chemin de classe non géré de votre projet.

Pour publier un fichier jar localement, si vous avez un projet sbt qui produit le jar, cela devrait être aussi simple que d'appeler "publish-local" pour publier le jar dans votre référentiel ivy local afin que vous puissiez utiliser ce jar dans un autre de vos projets (sur le même ordinateur).

31voto

Powers Points 1742

Votre projet SBT doit être structuré comme ceci :

 README.md
build.sbt
project/
src/
target/

Créez un lib/ pour ajouter un fichier JAR (par exemple spark-daria_2.11-0.2.0.jar ) au projet :

 README.md
build.sbt
lib/
  spark-daria_2.11-0.2.0.jar
project/
src/
target/

L'emplacement du lib/ doit s'aligner avec la sortie de la commande sbt "show unmanagedBase" .

Actualisez le projet dans votre IDE et importez le code comme vous importeriez une dépendance externe.

 import com.github.mrpowers.spark.daria.sql.DataFrameValidator

2voto

Mikhail Ionkin Points 86

Si vous avez un projet multi-modules, vous devez :

  1. ajoutez lib au répertoire du module (pas à la racine). Par exemple, si vous avez le module core , vous devez ajouter jar à core/lib .
  2. supprimez la dépendance explicite pour le jar spécifié dans votre build.sbt (ou à un autre endroit). Par exemple, supprimer libraryDependencies += <your jar in lib>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X