2017-06-28 2 views
0

J'ai un projet séparé dans Clojure Supposons que ces trois projets sont interdépendants.Clojure: Comment ajouter un projet dépendant (local) au projet Clojure principal

  1. Clojure-IO
  2. Clojure-Data
  3. Clojure-Calc The dependencies of the project are as follows

J'ai essayé d'ajouter à la fois le projet dans mon clojure répertoire racine, et essayé de courir le même, mais Im obtenir une erreur en disant que: Impossible de résoudre le symbole: k dans ce contexte

Dependecies du pro jects sont

projet 2 et 3 projets dépendent de projet 1 donc je nécessaire Projet 2 et 3 projets dans le projet 1

+0

Est-ce que [datomic] est pertinent ici? – cfrick

+0

@cfrick oui J'utilise la datomique dans les données. où ma dépendance pertinente de datomic vient –

Répondre

1

Il semble que vous devez utiliser lein-checkouts. Voici a detailed description. Voir aussi the documentation.

Fondamentalement, vous créez un répertoire nommé checkouts au niveau supérieur de votre répertoire de projet (en regard de project.clj). À l'intérieur de checkouts, créez des liens symboliques vers les répertoires locaux de niveau supérieur pour tous les projets de dépendance. Par exemple, j'ai un projet car qui dépend de 2 autres projets, engine et wheel. Je structure le projet comme ceci:

> d car/checkouts/*    
lrwxrwxrwx 1 alan alan 17 Jun 6 21:40 car/checkouts/engine -> /home/alan/engine 
lrwxrwxrwx 1 alan alan 17 Jun 6 21:40 car/checkouts/wheel -> /home/alan/wheel 

Mise à jour 1: liens symboliques (aka symlinks) sont créés dans linux en utilisant la commande ln -s:

> cd car 
> ln -s /home/alan/wheel 
> ls -ldF wheel 
lrwxrwxrwx 1 alan alan 17 Jun 6 21:40 wheel -> /home/alan/wheel 

Maintenant, le projet car verra tout modifications locales aux fichiers pour les projets engine et wheel (ainsi que ses propres fichiers source, bien sûr).

Update 2

Pour les dépendances de fichier jar, vous devez utiliser : chemins de ressources dans votre fichier project.clj. S'il vous plaît voir this question. et this example.

+0

Dans le dossier checkouts, j'ai besoin d'ajouter un fichier jar ou le dossier complet du projet, j'utilise des schémas de datomic dans le projet Clojure-Data. si j'utilise le dossier alors comment est-ce que je suis supposé ajouter des dépendances dans project.clj –

+0

Est-ce que j'ai un créer un flie pour créer un lien entre le sous-projet et un projet principal. Si oui, quelle serait l'extension du fichier. Et comment est-ce que je suis supposé donner un lien –

+0

Dans les systèmes Linux, vous pouvez simplement créer un lien symbolique ('ln -s'). Dans Windows, vous devez utiliser 'mklink/j'.Créez simplement le répertoire 'checkouts' en premier, puis créez les liens dans ce répertoire. –