118 votes

Leiningen - comment faire pour ajouter des dépendances pour les bocaux local ?

Je veux utiliser leiningen pour construire et développer mon projet de clojure. Est-il possible de modifier project.clj pour lui demander d’en choisir quelques pots de répertoires locaux ?

J’ai quelques pots exclusifs qui ne peuvent pas être téléchargées à repos publics.

Aussi, les Linange peut servir à maintenir un répertoire « lib » pour les projets de clojure ? Si un tas de mes projets de clojure partagent les mêmes pots, je ne veux pas conserver une copie distincte pour chacun d’eux.

Merci

65voto

Hans-J. Points 184

Juste utilisation des ressources-les chemins de votre projet.clj fichier. Je l'utilise, par exemple, pour se connecter à Siebel serveurs. Juste créé un ressources répertoire dans mon répertoire de projet et copié les fichiers jar. Mais bien sûr, vous pourriez utiliser un plus générique dans le répertoire:

(defproject test-project "0.1.0-SNAPSHOT"
:description "Blah blah blah"
...
:resource-paths ["resources/Siebel.jar" "resources/SiebelJI_enu.jar"])

Puis, à partir de la lein repl je peux créer des Données Siebel Bean cas, par exemple,

(def sbl (com.siebel.data.SiebelDataBean.))
(.login sbl "siebelServer" "user" "password")
...

Si vous avez une nouvelle version de Java, vous pouvez bien sûr utiliser des caractères génériques dans votre spécification du chemin d'accès comme ça pendant plus d'répertoire général:

:resource-paths ["/tmp/SiebelJars/*"]

51voto

Janus Troelsen Points 5121

Utilisation de fichiers JAR locaux avec Leiningen

39voto

Michał Marczyk Points 54179

Vous pourriez mettre votre privé pots en lib/ et qu'ils allaient être dans le classpath de l'application de l' lein swank ; cela ne semble vaincre le point de l'utilisation d'une dépendance de l'outil de gestion, mais si vous n'avez pas vraiment envie ces dépendances géré, vous pourriez traiter Leiningen comme un "open source dépendances de l'outil de gestion" et peut-être être prudent avec lein clean.

À mesure que la situation devient de plus en plus complexe, il y a un plus grand nombre de privé pots impliqués, ils évoluent et vous avez besoin de prendre quelques versioning info sur leur compte -- Arthur l'idée de la création d'un privé repo Maven peut être plus approprié.


(RH signifie Leiningen-partie spécifique point d'arrêt de la... Continuer ci-dessous pour plus d'informations sur la construction générale / gestion de la dépendance de l'outillage histoire en Clojure la terre, y compris certains des liens qui je pense pourrait être très utile dans votre situation.)

Aussi, pour l'instant, il n'y a pas de consensus universel sur la question de savoir quel est le meilleur outil pour Clojure, et Leiningen, tout en gagnant en notoriété, est également gagnent sans cesse dans les zones caractéristiques et polonais-à-dire, en particulier, qu'il n'est pas encore terminée. Voici une citation de Stuart Halloway, l'auteur de la Pragmatique Étagère "Programmation Clojure": "Mon 2c: Leiningen est une étape importante, mais il y a encore beaucoup à faire." Pour la publication intégrale et une discussion très intéressante re: construire les outils et la comme dans Clojure de l'espace, voir la Leiningen, Clojure et les bibliothèques: ce qui me manque? fil sur le Clojure groupe Google. De nombreux participants mentionnent expressément la nécessité d'avoir des dépendances locales ne figurent pas dans tous les référentiels, locale ou autre, et des précisions sur les solutions qu'ils en sont arrivés à de tels scénarios. Peut-être que vous pouvez voir si il ya quelque chose là-bas qui peut résoudre votre problème maintenant / est susceptible de résoudre dans le futur, lors de jeux de fonctionnalité mature?

De toute façon, il est possible que Leiningen peut pas, en effet, avoir une bonne histoire encore prêt pour certains scénarios complexes. Si vous sentez que cela peut être vrai de votre cas (et je veux dire après que vous considérez le privé, les pensions de l'idée), voici quelques liens vers maven alternatives prises à partir de l'mentionnés ci-dessus thread: polyglotte maven, clojure-maven-plugin; ce blogue vise à être utile pour les gens qui essaient d'utiliser maven avec Clojure. Je me souviens, Meikel Brandmeyer (également sous sa en ligne sur la poignée de kotarak) utilise Gradle (Groovy système de construction) avec un plugin pour accueillir Clojure appelé Clojuresque; je n'ai jamais essayé moi-même, ne savent pas la première chose à propos de Groovy, mais il affirme que pour exécuter un très bel acte de construire avec elle et je crois qu'il n'a rien à voir avec maven -- quelque chose qui est un plus, en soi, pour certains d'entre nous. :-)

34voto

Greg B Points 144

Je trouve que lein pom; lein jar; lein install fonctionne bien lors du développement de bibliothèques.

Faites-le dans la bibliothèque en cours de développement et votre application qui l'exige l'utilisera sans qu'il soit nécessaire d'ajouter :repositories foo.


Original ci-dessus mais modifiant pour afficher lein do pom, jar, install légèrement plus concis.

15voto

Arthur Ulfeldt Points 45059

Je pense que la "bonne" approche consiste à créer un référentiel Maven privé afin que vous puissiez stocker les bocaux dans un emplacement unique et que toutes vos branches, etc., enregistrent les modifications. Cela peut être exagéré pour ce que vous faites. Je suis curieux de savoir si c'est un moyen plus facile.

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