mranderson
Gyazo

Clojure Advent Calendar 2018 25

iced-nrepl nREPL

使 +α dependencies ver 0.2.12 iced-nrepl
Gyazo

org.clojure/data.json 0.2.6 使 confusing dependencies
$ lein deps :tree
Possibly confusing dependencies found:
[org.clojure/data.json "0.2.5"]
overrides
[iced-nrepl "0.2.12"] -> [org.clojure/data.json "0.2.6"]
...


mranderson
Clojure CIDER nREPL cider-nrepl mranderson Leiningen 使

Mr. Anderson ()
The Matrix
>At the end he really gets back to the source, does not he?
..

使
使

使 :plugins mranderson :source-dep
Clojure :source-dep
>note you should not mark clojure itself as a source dependency: there is a limit for everything.

(defproject foo "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.10.0"]
^:source-dep [org.clojure/data.json "0.2.6"]]
:plugins [[thomasa/mranderson "0.4.9"]])
(ns foo.core
(:require [clojure.data.json :as json]))
(defn -main []
(println (json/write-str {:hello "world"})))

lein source-deps
alert 2019/03/26: 0.5.0 lein inline-deps
org.clojure/data.json
$ lein source-deps
project prefix: mranderson049
retrieve dependencies and munge clojure source files
retrieving data.json artifact.
prefixing imports in clojure files in 'target/srcdeps/clojure/data' ...

target/srcdeps
$ find target -type f
target/srcdeps/mranderson049/datajson/v0v2v6/clojure/data/json_compat_0_1.clj
target/srcdeps/mranderson049/datajson/v0v2v6/clojure/data/json.clj
target/srcdeps/META-INF/maven/org.clojure/data.json/pom.xml
target/srcdeps/META-INF/maven/org.clojure/data.json/pom.properties
target/srcdeps/META-INF/MANIFEST.MF
target/srcdeps/foo/core.clj

(ns ^{:author "Stuart Sierra"
:doc "JavaScript Object Notation (JSON) parser/generator.
See http://www.json.org/"}
mranderson049.datajson.v0v2v6.clojure.data.json
(:refer-clojure :exclude (read))
(:require [clojure.pprint :as pprint])
(:import (java.io PrintWriter PushbackReader StringWriter
Writer StringReader EOFException)))

(ns foo.core
(:require [mranderson049.datajson.v0v2v6.clojure.data.json :as json]))
(defn -main []
(println (json/write-str {:hello "world"})))

使clojars Leiningen plugin.mranderson/config
# install
$ lein with-profile +plugin.mranderson/config install
# deploy
$ lein with-profile +plugin.mranderson/config deploy clojars

SNAPSHOT ver 0.3.0 mranderson 使
Gyazo Gyazo

nrepl cider-nrepl/refactor-nrepl source-dep
refactor-nrepl mranderson 使
( refactor-nrepl )

eastwood
便使 mranderson
eastwood

(defn wrapped-exception? [result]
(if (instance? mranderson049.eastwood.v0v3v4.eastwood.copieddeps.dep2.clojure.tools.analyzer.jvm.ExceptionThrown result)
(.e ^eastwood.copieddeps.dep2.clojure.tools.analyzer.jvm.ExceptionThrown result)))

result ^eastwood.copieddeps.dep2.clojure.tools.analyzer.jvm.ExceptionThrown ^mranderson049.eastwood.v0v3v4.eastwood.copieddeps.dep2.clojure.tools.analyzer.jvm.ExceptionThrown
java.lang.ClassNotFoundException
lein source-deps

(defn mranderson049.eastwood.v0v3v4.eastwood
([opts] (mranderson049.eastwood.v0v3v4.eastwood opts (reporting/printing-reporter opts)))
([opts reporter]
...))

eastwood mranderson049.eastwood.v0v3v4.eastwood
lein source-deps (

(defn builtin-config-to-resource [name]
(io/resource (str "eastwood/config/" name)))

(io/resource (str "mranderson049/eastwood/v0v3v4/eastwood/config/" name)
(

lein source-deps (target/srcdeps )


p.s. Clojure ()
Gyazo