2016-04-23 3 views
4

Ich versuche, das s3-Wagen-private Plugin zu verwenden. Ich habe zwei lein Projekte:(leiningen, s3-wagon-private) Wie suche ich nach Abhängigkeiten im privaten S3 Repo?

  • X: eine Bibliothek, die ich für einige Daten Munging gemacht habe. Hat einige Abhängigkeiten von Drittanbietern.
  • Y: Eine Bibliothek, die ich für die Arbeit mit meiner Datenbank erstellt habe, hat X und einige Abhängigkeiten von Drittanbietern.

Ich habe folgendes in meiner ~/.lein/profiles.clj Datei:

{:repl {:dependencies [[org.clojure/tools.nrepl "0.2.12"]]} 
:user {:plugins [[cider/cider-nrepl "0.10.0"] 
       [s3-wagon-private "1.2.0"]] 
:signing {:gpg-key "0xabcdef12"} 
:repositories [["private" {:url "s3p://acme/releases/" 
          :username :env 
          :passphrase :env}]]}} 

Als ich lein deploy private in Projekt X laufen, alles gut funktionieren und es wird bis S3 zum Einsatz.

Als ich lein deploy private in Projekt Y laufen, es geht um nicht in der Lage beklagt sein Projekt X.

Could not find artifact X:X:jar:0.7.0 in central (https://repo1.maven.org/maven2/) 
Could not find artifact X:X:jar:0.7.0 in clojars (https://clojars.org/repo/) 
This could be due to a typo in :dependencies or network issues. 
If you are behind a proxy, try setting the 'http_proxy' environment variable. 

Mit anderen Worten zu finden, es ist nicht auf der Suche in meiner privaten S3 Repo zu versuchen, Projekt X zu finden Wie löse ich das?


UPDATE: 2016-04-25

In einem Kommentar, Daniel Compton fragte:

Was passiert, wenn man lein deps in Projekt Y laufen? Von Ihrer Fehlermeldung, es sieht aus wie das Repository „privat“ in Projekt Y. nicht vorhanden ist

Als ich lein deps in Projekt Y laufen, hat es keine Fehler geben:

(py3)aj-laptop:red aj$ lein deps 
(:repositories detected in user-level profiles! [:user] 
See https://github.com/technomancy/leiningen/wiki/Repeatability) 

so habe ich folgendes in Projekt Y. project.clj Dies machte lein deploy private wie erwartet:

:repositories [["private" {:url "s3p://acme/releases/" 
          :username :env 
          :passphrase :env}]] 

so scheint es, dass Projekt Y nicht richtig erfasst wird : Repositories aus meiner ~/.lein/profiles.clj Datei. Aber Projekt X scheint es gut aufzunehmen.

+0

Damit niemand denkt, dass ich meine Due Diligence nicht getan habe, verbrachte ich mehrere Stunden in dieser letzten Nacht durchlesen Dokumentation, die Master projects.clj Datei auf Github, etc. und ausprobieren eine Reihe von Variationen. Kein Würfel. –

+0

Sie könnten versuchen, https://github.com/pjstadig/lein-maven-s3-wagon –

+0

Was passiert, wenn Sie 'lein deps' in Projekt Y ausführen? Aus Ihrer Fehlermeldung sieht es so aus, als wäre das Repository "privat" in Projekt Y nicht vorhanden. –

Antwort

1

Das Problem ist, dass die :repositories in der Benutzer ~/.lein/profiles.clj Datei angegeben wurden. Leiningen doesn't really like this. Ich vermute, dass es hier einen latenten Fehler gibt, vielleicht in den Interaktionen zwischen Lein-Plugins und dem Abhängigkeitsauflösungssystem. Da es in der Regel nicht empfohlen wird, :repositories in Ihr Benutzerprofil zu setzen, sind die Benutzer möglicherweise noch nicht darauf gestoßen.

Ich denke, die beste Lösung ist wahrscheinlich :repositories zu jeder Datei hinzuzufügen, nervig obwohl das sein kann.

+0

Könnte ein Fehler sein. Wahrscheinlicher ist, dass ich die Feinheiten hier nicht verstehe.Aber ja, ich stimme zu, ich sollte einfach die privaten Repository-Informationen in die einzelnen project.clj-Dateien einfügen. –

Verwandte Themen