#_) forms in the ns macro untouched during a rename. A symbol buried inside a discarded :require/:import (e.g. #_[a.b :as c]) was previously rewritten, since the guards only skipped the discard node itself, not its contents:print-deps-tree option (and mranderson.core/print-deps-tree) that prints the dependency tree inlining would process and exits without inlining: lein inline-deps :print-deps-tree true:report option that, after inlining, prints a per-file summary of which namespaces' references were rewritten in each file and how many: lein inline-deps :report true (resolved-tree mode only)mranderson.core/inline-deps is the supported entry point, :source-paths is now optional (omit it to shadow dependencies standalone, e.g. from the REPL), and the lower-level mranderson.core/mranderson and copy-source-files are marked :no-doc as internalmranderson.util, mranderson.move, mranderson.dependency.*) :no-doc so cljdoc documents only the public API (mranderson.core, mranderson.plugin, leiningen.inline-deps)mranderson.zloc namespace that wraps rewrite-clj navigation, instead of scattering :uneval checks through mranderson.move:aot (Leiningen plugin) when its ns form actually has a :gen-class clause, not when :gen-class merely appears as text in a docstring or comment(some.pkg.Widget. ...)) untouched during the namespace move when its package is also a moved namespace, so the java-import pass can point it at the jarjar-repackaged class instead of the namespace prefix (otherwise it threw ClassNotFoundException at runtime). Deftype/defrecord classes, which have no .class file, still move with their namespace(:import ...) correctly when a deftype class and a repackaged Java class share a package (e.g. claypoole): the Java class now points at its jarjar package even though the namespace move has already prefixed the shared package(:import ...) form (previously such references were left bare and threw ClassNotFoundException at runtime)(load "…") resource paths when a namespace is relocated, so libraries that load companion files (e.g. tools.deps.alpha) inline correctly/ in a n/a version) from the generated prefix so they don't break imports:imports of inlined classes in top-level dependency namespaces and in the consuming project's own sources, which the per-dependency pass missed:imports by exact class rather than by package, so a class that merely shares a package with a repackaged one is left untouched(:import [pkg A B]) so a deftype-generated class and a real Java class in the same package each get the correct prefixsrcdeps directory instead of a hardcoded target/srcdeps, so it works with mranderson.core/inline-deps and a custom :target-path.class files instead of the whole top-level directory, so project sources sharing a root namespace with an inlined lib aren't clobberedorg.clojure/core.rrb-vector as part of clojure.core:aot is configured, since inlining AOT-compiled namespaces produces broken prefixesMakefile so make install installs an inlined MrAnderson to the local maven repomranderson.core/inline-deps, a Leiningen-free entry point usable from tools.build/tools.depsmranderson.internal.no-parallelism as on option temporarilycider-nrepl and refactor-nrepl:included-source-paths option, which is described in the README.org.pantsbuild.jarjar:1.7.2 instead of jarjar:1.3. Also abandoned but still an upgradeclj-kondo.exports from jar extraction by @bbatsovdef in cljs(:import foo.bar.baz.FooBar)META-INF directory when unzipping dependency for inlining as meta files are unnecessary in the end product.:inline-dep and :source-dep meta tag on dependencies are supported to signal that MrAnderson should inline given dependency.:import section of the ns macro is processed first. Only when that part is done the rest of the ns macro is considered for replacements.source-deps leiningen task is renamed to inline-depsrewrite-clj the body of the ns is processed textuallymranderson.source-deps ns into multiple namespaces for readability/maintainablity:mranderson section in the project.clj for certain config options (project-prefix, overrides, expositions, shadowing-only)overrides config option for the unresolved tree mode to make overriding transient deps possibleexpositions config option for the unresolved tree mode to override transient deps hygiene so a transient dependency would be available for the project's own source filesPlease see the releases page on github.
Can you improve this documentation? These fine people already did:
Bozhidar Batsov, Benedek Fazekas, Lee Read, benedek fazekas, lread & vemvEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |