J'ai créé un projet IntelliJ Idea SBT Scala comme l'article de Heiko Seeberger décrit.
J'aimerais ajouter une bibliothèque Jar (joda-time) à utiliser dans ce projet. Comment faire ça? Le simple fait de les mettre dans le projet/lib n'aide pas. Si je clique avec le bouton droit de la souris sur "Bibliothèques externes" dans l'arborescence du projet Idea, "Nouveau>" est grisé.
Dans la fenêtre IntelliJ Idea de votre projet, accédez à Fichier >> Structure du projet >> Bibliothèques. Après avoir cliqué sur cette option Bibliothèques, deux panneaux s’affichent. En haut du volet le plus à gauche, cliquez sur le bouton vert "+".
La meilleure façon de le faire est d’ajouter vos dépendances non gérées à votre build.sbt et de ne pas laisser une partie de votre gestion des dépendances à votre IDE.
Reportez-vous à http://www.scala-sbt.org/release/docs/Library-Management.html pour plus d'informations sur la définition de vos tâches unmanagedBase et unmanagedJars.
Il suffit de déclarer ceci dans build.sbt
unmanagedJars in Compile += file(Path.userHome+"/Your-Jar-Path/Full-Jar-Name.jar")
et le fichier jar requis apparaîtra dans Bibliothèque externe> unmanaged-jars> Nom_Jar_Java.jar Cela changera également si le fichier jar (dans le chemin fourni) est modifié.
Dans Idée Intellij:
En Netbeans:
Dans Eclipse:
Pour un projet SBT multi-module (Intellij 2017.3.4, Scala 12.2.4, sbt 1.1.1), la solution acceptée ne fonctionnait que jusqu'au redémarrage ou à l'actualisation du projet. En effet, "Paramètres du projet-> Modules -> Dépendances", puis "+" et "JAR ou répertoires" donne un avertissement "Le module X est importé de Sbt. Toute modification apportée à sa configuration peut être perdue après une réimportation".
Solution de contournement possible :
La suggestion de @zero a fonctionné pour moi comme suit:
lib
du projet.build.sbt
, dans lazy var baseSettings = Seq( ... )
, ajoutez la ligne unmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar")
. Toujours pas de chance? Dans la fenêtre de l'outil SBT, dans un module paramètres sbt sous unmanagedBase, unmanagedSourceDirectories (et autres), essayez d'appeler les commandes contextuelles "Afficher la valeur" et "Inspecter" plusieurs fois. D'une certaine manière, cela pourrait fonctionner.
De la réponse d'Eugene Yokota à Comment puis-je ajouter des fichiers JAR non gérés dans sbt-Assembly au fichier JAR final? Une autre option (que je n’ai pas essayée) est d’ajouter un répertoire lib
à chaque module requis.
Espérons que ces étapes vont résoudre le problème ou au moins aider au débogage.
Créez un répertoire lib dans le chemin racine de votre projet, collez-y vos JAR, exécutez sbt reload, fermez le projet et ouvrez-le à nouveau. Fonctionne pour moi dans IntelliJ 2018.2.4 et SBT 1.0