Mit find-deps können Sie Abhängigkeiten über die Such-APIs Clojars und Maven schnell finden. Verwenden Sie es über die Befehlszeile oder über die REPL.
find-deps verwendet clj-fuzzy, um die von Repository-APIs zurückgegebenen Suchergebnisse zu verfeinern. Es berücksichtigt auch die Aktualität der Abhängigkeiten und die Beliebtheit der Gruppen-ID der Abhängigkeit. Wir hoffen, dass dies jedes Mal zu einem nahezu perfekten Vorschlag führt!
Im Abschnitt „Zukunft“ unten finden Sie einige Ideen, wo dies umgesetzt werden kann. Insbesondere wäre es großartig, die Suche nach deps.edn
Dateien auf Github zu ermöglichen …
Fügen Sie Ihrer aktuellen deps.edn so einfach eine Abhängigkeit hinzu:
clj -A:find-deps -F:save priority-map
Um find-deps über die Befehlszeile zu verwenden, erstellen Sie einen Alias in Ihrer ~/.clojure/deps.edn-Map:
{ :aliases { :find-deps { :extra-deps
{find-deps
{ :git/url " https://github.com/hagmonk/find-deps " ,
:sha " 6fc73813aafdd2288260abb2160ce0d4cdbac8be " }},
:main-opts [ " -m " " find-deps.core " ]}}}
Sie können find-deps mit -h
aufrufen, um die unterstützten Optionen anzuzeigen:
% clj -A:find-deps -h
find-deps
Usage: [options * ] [search-strings * ]
Options:
-s, --sources SOURCES :clojars:mvn Concatenated source types
-R, --rank METHOD :fuzzy Ranking method - :fuzzy, :regex
-F, --format FORMAT :deps Format for printing results - :deps, :merge, :table, :save, :cli
-l, --limit NUM 1 Limit per-search results to NUM
-h, --help
Suchen Sie nach einer Abhängigkeit wie http-kit:
clj -A:find-deps http-kit
{ :deps {http-kit/http-kit { :mvn/version " 2.3.0 " }}}
Nach mehreren Abhängigkeiten suchen:
clj -A:find-deps http-kit tools.logging priority-map
{ :deps
{http-kit/http-kit { :mvn/version " 2.3.0 " },
org.clojure/tools.logging { :mvn/version " 0.5.0-alpha " },
org.clojure/data.priority-map { :mvn/version " 0.0.9 " }}}
Verketten Sie mehrere Aufrufe mit unterschiedlichen Abfrageargumenten:
clj -A:find-deps -s:mvn roaringbitmap | clj -A:find-deps -s:clojars -R:regex -l 5 io.pedestal
{ :deps
{org.roaringbitmap/RoaringBitmap { :mvn/version " 0.7.13 " },
io.pedestal/pedestal.jetty { :mvn/version " 0.5.3 " },
io.pedestal/pedestal.tomcat { :mvn/version " 0.5.3 " },
io.pedestal/pedestal.log { :mvn/version " 0.5.3 " },
io.pedestal/pedestal.service { :mvn/version " 0.5.3 " },
io.pedestal/pedestal.interceptor { :mvn/version " 0.5.3 " }}}
Führen Sie die Suchergebnisse in die deps.edn
des aktuellen Projekts ein. Sie können diese Ergebnisse auch in deps.edn speichern , indem Sie stattdessen :save
angeben.
clj -A:find-deps -F:merge http-kit tools.logging priority-map
{ :paths [ " src " ],
:deps
{org.clojure/clojure { :mvn/version " 1.9.0 " },
org.clojure/tools.logging { :mvn/version " 0.5.0-alpha " },
org.clojure/spec.alpha { :mvn/version " 0.1.143 " },
clj-fuzzy { :mvn/version " 0.4.1 " },
http-kit { :mvn/version " 2.3.0 " },
tools.deps.alpha
{ :git/url " https://github.com/clojure/tools.deps.alpha " ,
:sha " 884d7ae5b9c228ff795e4385291708102f1cd46d " },
metosin/jsonista { :mvn/version " 0.1.1 " },
org.clojure/data.priority-map { :mvn/version " 0.0.9 " },
inflections { :mvn/version " 0.13.0 " },
http-kit/http-kit { :mvn/version " 2.3.0 " }}
; ; ... snip
}
String-Suche, die mehrere Übereinstimmungen in einer Tabelle zurückgibt:
clj -A:find-deps -F:table -l 10 " apache kafka "
| :lib | :version |
| -----------------------------------+---------- |
| org.apache.kafka/kafka-tools | 1.1.0 |
| org.apache.kafka/kafka_2.9.2 | 0.8.2.2 |
| org.apache.kafka/kafka_2.9.1 | 0.8.2.2 |
| org.apache.kafka/kafka_2.8.0 | 0.8.1.1 |
| org.apache.kafka/kafka_2.8.2 | 0.8.1 |
| org.apache.hadoop/hadoop-kafka | 3.1.0 |
| org.apache.kafka/kafka-streams | 1.1.0 |
| org.apache.kafka/kafka-clients | 1.1.0 |
| org.apache.kafka/kafka-examples | 1.1.0 |
| org.apache.kafka/kafka-perf_2.8.0 | 0.8.1.1 |
Drucken Sie einen Befehlszeilenaufruf der Deps aus:
clj -A:find-deps -F:cli http-kit jsonista
clojure -Sdeps ' {:deps {http-kit/http-kit {:mvn/version "2.3.0"}, metosin/jsonista {:mvn/version "0.2.1"}}} '
Der Namespace find-deps.core
enthält eine Reihe von Hilfsprogrammen, die Sie aus der REPL verwenden können. Angenommen, Sie haben einen Alias für rebel-readline:
clj -A:rebel
[Rebel readline] Type :repl/help for online help info
user= > (use ' find-deps.core)
nil
user=> (print-deps "http-kit")
| :lib | :version |
|-------------------+----------|
| http-kit/http-kit | 2.3.0 |
nil
user=> (deps "http-kit")
{:deps #:http-kit{http-kit #:mvn{:version "2.3.0"}}}
Weitere Helfer finden Sie im Namespace find-deps.core
.
add-lib