Comment utiliser Leiningen pour se développer à l'aide de pots locaux?
-
29-10-2019 - |
Question
Je me rends compte que cette question est à peu près la question exacte trouvée ici. Cependant, étant donné que cette question a 1,5 ans (environ), je voudrais la revoir. Comment ajouter des dépendances locales à l'aide de Leiningen? Cette capacité doit sûrement exister maintenant?
La solution
Créer un référentiel maven privé, puis, ajoutez ce qui suit à votre project.clj
:repositories {"local" ~(str (.toURI (java.io.File. "your_local_repository")))}
Autres conseils
Si les pots sont basés sur vos propres projets, vous pouvez utiliser lein install
Pour les mettre dans votre .M2 local, ou utiliser la fonction de dépendance à la caisse.
Vous pouvez également utiliser la fonctionnalité extra-classage, etc.
J'ai trouvé que la solution la plus simple (quoique quelque peu piratée) est de procéder ce qui suit:
Pour un projet existant que vous utilisez comme dépendance:
- Dans votre projet local qui a la dépendance que vous souhaitez modifier, assurez-vous d'exécuter
lein deps
- Clone le repo de cette dépendance afin que vous puissiez le modifier localement (Obv. Assurez-vous que vous utilisez la même balise que la version que vous spécifiez dans votre fichier project.clj)
- Courir
lein uberjar
Dans cette dépendance DIR (où vit le fichier project.clj pertinent) - Copiez le pot autonome généré dans Target / sur le chemin / fichier exact de vos fichiers Maven locaux ... (quelque chose comme: ~ / .m2 / Repository / project /.../ file.jar); Assurez-vous de sauvegarder le fichier JAR d'origine afin que vous puissiez le restaurer plus tard si cela est souhaitable
Pour le développement de votre propre projet:
- Dans le projet ou le plugin que vous développez, exécutez simplement
lein install
- Découvrez où est votre dépôt de maven local (voir ci-dessus pour un exemple de chemin)
- Entrez les informations de dépendance dans votre projet de test comme vous le feriez pour tout autre projet Leiningen
Encore une fois, c'est un hack rapide et peut-être pas la façon dont vous allez faire un développement local sérieux, mais j'ai trouvé cela assez facile pour ce que je voulais. Vérifier lein help tutorial
Pour beaucoup plus d'informations