find-deps membantu Anda menemukan dependensi dengan cepat melalui API pencarian Clojars dan Maven. Gunakan melalui baris perintah, atau dari REPL.
find-deps menggunakan clj-fuzzy untuk menyaring hasil pencarian yang dikembalikan dari API repositori. Hal ini juga memperhitungkan kesegaran dependensi, dan popularitas ID grup dependensi. Kami berharap ini menghasilkan saran yang hampir sempurna setiap saat!
Lihat bagian Masa Depan di bawah untuk mengetahui beberapa ide mengenai hal ini yang dapat diambil. Secara khusus, akan sangat bagus jika mengaktifkan pencarian file deps.edn
di github…
Tambahkan ketergantungan ke deps.edn Anda saat ini semudah ini:
clj -A:find-deps -F:save priority-map
Untuk menggunakan find-deps dari baris perintah, buat alias di peta ~/.clojure/deps.edn Anda:
{ :aliases { :find-deps { :extra-deps
{find-deps
{ :git/url " https://github.com/hagmonk/find-deps " ,
:sha " 6fc73813aafdd2288260abb2160ce0d4cdbac8be " }},
:main-opts [ " -m " " find-deps.core " ]}}}
Anda dapat memanggil find-deps dengan -h
untuk melihat opsi yang didukung:
% 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
Cari ketergantungan seperti http-kit:
clj -A:find-deps http-kit
{ :deps {http-kit/http-kit { :mvn/version " 2.3.0 " }}}
Cari beberapa dependensi:
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 " }}}
Menyatukan beberapa pemanggilan menggunakan argumen kueri yang berbeda:
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 " }}}
Gabungkan hasil pencarian ke dalam deps.edn
proyek saat ini. Anda juga dapat menyimpan hasil ini ke deps.edn dengan menentukan :save
sebagai gantinya.
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
}
Pencarian string menghasilkan beberapa kecocokan dalam sebuah tabel:
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 |
Cetak pemanggilan baris perintah dari deps:
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"}}} '
Namespace find-deps.core
berisi sejumlah pembantu yang dapat Anda gunakan dari REPL. Dengan asumsi Anda memiliki alias untuk pemberontak-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"}}}
Lihat namespace find-deps.core
untuk bantuan lebih lanjut.
add-lib