I’m experiencing a persistent issue with vizdeps under:
➜ app lein --version
Leiningen 2.8.1 on Java 1.8.0_151 Java HotSpot(TM) 64-Bit Server VM
I’ve tried to isolate the problem for a minimal project (ymmv with this btw):
(defproject app "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.9.0"]]
:profiles
{:dev {:plugins [[walmartlabs/vizdeps "0.1.6"]]}})
➜ app lein classpath
/home/mark/Code/Personal/clojure/app/test:/home/mark/Code/Personal/clojure/app/src:/home/mark/Code/Personal/clojure/app/dev-resources:/home/mark/Code/Personal/clojure/app/resources:/home/mark/Code/Personal/clojure/app/target/classes:/home/mark/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/home/mark/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar:/home/mark/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar:/home/mark/.m2/repository/org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.jar:/home/mark/.m2/repository/clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar
I nuke the m2
cache in case that’s presenting issues:
➜ app rm -rf ~/.m2
➜ app lein deps
Retrieving walmartlabs/vizdeps/0.1.6/vizdeps-0.1.6.pom from clojars
Retrieving org/clojure/clojure/1.8.0/clojure-1.8.0.pom from central
Retrieving org/sonatype/oss/oss-parent/7/oss-parent-7.pom from central
Retrieving dorothy/dorothy/0.0.6/dorothy-0.0.6.pom from clojars
Retrieving org/clojure/clojure/1.5.1/clojure-1.5.1.pom from central
Retrieving org/sonatype/oss/oss-parent/5/oss-parent-5.pom from central
Retrieving medley/medley/0.8.4/medley-0.8.4.pom from clojars
Retrieving org/clojure/clojure/1.7.0/clojure-1.7.0.pom from central
Retrieving com/stuartsierra/dependency/0.2.0/dependency-0.2.0.pom from clojars
Retrieving org/clojure/clojure/1.8.0/clojure-1.8.0.jar from central
Retrieving walmartlabs/vizdeps/0.1.6/vizdeps-0.1.6.jar from clojars
Retrieving dorothy/dorothy/0.0.6/dorothy-0.0.6.jar from clojars
Retrieving medley/medley/0.8.4/medley-0.8.4.jar from clojars
Retrieving com/stuartsierra/dependency/0.2.0/dependency-0.2.0.jar from clojars
Retrieving org/clojure/clojure/1.9.0/clojure-1.9.0.pom from central
Retrieving org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.pom from central
Retrieving org/clojure/pom.contrib/0.2.2/pom.contrib-0.2.2.pom from central
Retrieving org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.pom from central
Retrieving org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.pom from central
Retrieving org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2.pom from central
Retrieving clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.pom from clojars
Retrieving org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.jar from central
Retrieving org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar from central
Retrieving org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar from central
Retrieving org/clojure/clojure/1.9.0/clojure-1.9.0.jar from central
Retrieving clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar from clojars
➜ app lein vizdeps
clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate clojure/tools/cli__init.class or clojure/tools/cli.clj on classpath., compiling:(com/walmartlabs/vizdeps/common.clj:1:1)
at clojure.lang.Compiler.load (Compiler.java:7391)
clojure.lang.RT.loadResourceScript (RT.java:372)
clojure.lang.RT.loadResourceScript (RT.java:363)
clojure.lang.RT.load (RT.java:453)
clojure.lang.RT.load (RT.java:419)
clojure.core$load$fn__5677.invoke (core.clj:5893)
clojure.core$load.invokeStatic (core.clj:5892)
clojure.core$load.doInvoke (core.clj:5876)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invokeStatic (core.clj:5697)
clojure.core$load_one.invoke (core.clj:5692)
clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
clojure.core$load_lib.invokeStatic (core.clj:5736)
clojure.core$load_lib.doInvoke (core.clj:5717)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$load_libs.invokeStatic (core.clj:5774)
clojure.core$load_libs.doInvoke (core.clj:5758)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$require.invokeStatic (core.clj:5796)
clojure.core$require.doInvoke (core.clj:5796)
clojure.lang.RestFn.invoke (RestFn.java:551)
leiningen.vizdeps$eval496$loading__5569__auto____497.invoke (vizdeps.clj:1)
leiningen.vizdeps$eval496.invokeStatic (vizdeps.clj:1)
leiningen.vizdeps$eval496.invoke (vizdeps.clj:1)
clojure.lang.Compiler.eval (Compiler.java:6927)
clojure.lang.Compiler.eval (Compiler.java:6916)
clojure.lang.Compiler.load (Compiler.java:7379)
clojure.lang.RT.loadResourceScript (RT.java:372)
clojure.lang.RT.loadResourceScript (RT.java:363)
clojure.lang.RT.load (RT.java:453)
clojure.lang.RT.load (RT.java:419)
clojure.core$load$fn__5677.invoke (core.clj:5893)
clojure.core$load.invokeStatic (core.clj:5892)
clojure.core$load.doInvoke (core.clj:5876)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invokeStatic (core.clj:5697)
clojure.core$load_one.invoke (core.clj:5692)
clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
clojure.core$load_lib.invokeStatic (core.clj:5736)
clojure.core$load_lib.doInvoke (core.clj:5717)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$load_libs.invokeStatic (core.clj:5774)
clojure.core$load_libs.doInvoke (core.clj:5758)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$require.invokeStatic (core.clj:5796)
clojure.core$require.doInvoke (core.clj:5796)
clojure.lang.RestFn.invoke (RestFn.java:408)
leiningen.core.utils$require_resolve.invokeStatic (utils.clj:102)
leiningen.core.utils$require_resolve.invoke (utils.clj:95)
leiningen.core.utils$require_resolve.invokeStatic (utils.clj:105)
leiningen.core.utils$require_resolve.invoke (utils.clj:95)
leiningen.core.main$lookup_task_var.invokeStatic (main.clj:69)
leiningen.core.main$lookup_task_var.invoke (main.clj:65)
leiningen.core.main$pass_through_help_QMARK_.invokeStatic (main.clj:79)
leiningen.core.main$pass_through_help_QMARK_.invoke (main.clj:73)
leiningen.core.main$task_args.invokeStatic (main.clj:82)
leiningen.core.main$task_args.invoke (main.clj:81)
leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:339)
leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
leiningen.core.main$_main$fn__4734.invoke (main.clj:420)
leiningen.core.main$_main.invokeStatic (main.clj:411)
leiningen.core.main$_main.doInvoke (main.clj:408)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.lang.Var.invoke (Var.java:379)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.Var.applyTo (Var.java:700)
clojure.core$apply.invokeStatic (core.clj:646)
clojure.main$main_opt.invokeStatic (main.clj:314)
clojure.main$main_opt.invoke (main.clj:310)
clojure.main$main.invokeStatic (main.clj:421)
clojure.main$main.doInvoke (main.clj:384)
clojure.lang.RestFn.invoke (RestFn.java:436)
clojure.lang.Var.invoke (Var.java:388)
clojure.lang.AFn.applyToHelper (AFn.java:160)
clojure.lang.Var.applyTo (Var.java:700)
clojure.main.main (main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate clojure/tools/cli__init.class or clojure/tools/cli.clj on classpath.
at clojure.lang.RT.load (RT.java:456)
clojure.lang.RT.load (RT.java:419)
clojure.core$load$fn__5677.invoke (core.clj:5893)
clojure.core$load.invokeStatic (core.clj:5892)
clojure.core$load.doInvoke (core.clj:5876)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invokeStatic (core.clj:5697)
clojure.core$load_one.invoke (core.clj:5692)
clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
clojure.core$load_lib.invokeStatic (core.clj:5736)
clojure.core$load_lib.doInvoke (core.clj:5717)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$load_libs.invokeStatic (core.clj:5774)
clojure.core$load_libs.doInvoke (core.clj:5758)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$require.invokeStatic (core.clj:5796)
clojure.core$require.doInvoke (core.clj:5796)
clojure.lang.RestFn.invoke (RestFn.java:551)
com.walmartlabs.vizdeps.common$eval502$loading__5569__auto____503.invoke (common.clj:1)
com.walmartlabs.vizdeps.common$eval502.invokeStatic (common.clj:1)
com.walmartlabs.vizdeps.common$eval502.invoke (common.clj:1)
clojure.lang.Compiler.eval (Compiler.java:6927)
clojure.lang.Compiler.eval (Compiler.java:6916)
clojure.lang.Compiler.load (Compiler.java:7379)
clojure.lang.RT.loadResourceScript (RT.java:372)
clojure.lang.RT.loadResourceScript (RT.java:363)
clojure.lang.RT.load (RT.java:453)
clojure.lang.RT.load (RT.java:419)
clojure.core$load$fn__5677.invoke (core.clj:5893)
clojure.core$load.invokeStatic (core.clj:5892)
clojure.core$load.doInvoke (core.clj:5876)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invokeStatic (core.clj:5697)
clojure.core$load_one.invoke (core.clj:5692)
clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
clojure.core$load_lib.invokeStatic (core.clj:5736)
clojure.core$load_lib.doInvoke (core.clj:5717)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$load_libs.invokeStatic (core.clj:5774)
clojure.core$load_libs.doInvoke (core.clj:5758)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$require.invokeStatic (core.clj:5796)
clojure.core$require.doInvoke (core.clj:5796)
clojure.lang.RestFn.invoke (RestFn.java:551)
leiningen.vizdeps$eval496$loading__5569__auto____497.invoke (vizdeps.clj:1)
leiningen.vizdeps$eval496.invokeStatic (vizdeps.clj:1)
leiningen.vizdeps$eval496.invoke (vizdeps.clj:1)
clojure.lang.Compiler.eval (Compiler.java:6927)
clojure.lang.Compiler.eval (Compiler.java:6916)
clojure.lang.Compiler.load (Compiler.java:7379)
clojure.lang.RT.loadResourceScript (RT.java:372)
clojure.lang.RT.loadResourceScript (RT.java:363)
clojure.lang.RT.load (RT.java:453)
clojure.lang.RT.load (RT.java:419)
clojure.core$load$fn__5677.invoke (core.clj:5893)
clojure.core$load.invokeStatic (core.clj:5892)
clojure.core$load.doInvoke (core.clj:5876)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invokeStatic (core.clj:5697)
clojure.core$load_one.invoke (core.clj:5692)
clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
clojure.core$load_lib.invokeStatic (core.clj:5736)
clojure.core$load_lib.doInvoke (core.clj:5717)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$load_libs.invokeStatic (core.clj:5774)
clojure.core$load_libs.doInvoke (core.clj:5758)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invokeStatic (core.clj:648)
clojure.core$require.invokeStatic (core.clj:5796)
clojure.core$require.doInvoke (core.clj:5796)
clojure.lang.RestFn.invoke (RestFn.java:408)
leiningen.core.utils$require_resolve.invokeStatic (utils.clj:102)
leiningen.core.utils$require_resolve.invoke (utils.clj:95)
leiningen.core.utils$require_resolve.invokeStatic (utils.clj:105)
leiningen.core.utils$require_resolve.invoke (utils.clj:95)
leiningen.core.main$lookup_task_var.invokeStatic (main.clj:69)
leiningen.core.main$lookup_task_var.invoke (main.clj:65)
leiningen.core.main$pass_through_help_QMARK_.invokeStatic (main.clj:79)
leiningen.core.main$pass_through_help_QMARK_.invoke (main.clj:73)
leiningen.core.main$task_args.invokeStatic (main.clj:82)
leiningen.core.main$task_args.invoke (main.clj:81)
leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:339)
leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
leiningen.core.main$_main$fn__4734.invoke (main.clj:420)
leiningen.core.main$_main.invokeStatic (main.clj:411)
leiningen.core.main$_main.doInvoke (main.clj:408)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.lang.Var.invoke (Var.java:379)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.Var.applyTo (Var.java:700)
clojure.core$apply.invokeStatic (core.clj:646)
clojure.main$main_opt.invokeStatic (main.clj:314)
clojure.main$main_opt.invoke (main.clj:310)
clojure.main$main.invokeStatic (main.clj:421)
clojure.main$main.doInvoke (main.clj:384)
clojure.lang.RestFn.invoke (RestFn.java:436)
clojure.lang.Var.invoke (Var.java:388)
clojure.lang.AFn.applyToHelper (AFn.java:160)
clojure.lang.Var.applyTo (Var.java:700)
clojure.main.main (main.java:37)
Vizdeps definitely depends on tools.cli
But its project.clj doesn’t include the dependency for some reason…
So I add tools.cli
to my project:
➜ app lein deps
Retrieving org/clojure/tools.cli/0.3.5/tools.cli-0.3.5.pom from central
Retrieving org/clojure/clojure/1.4.0/clojure-1.4.0.pom from central
Retrieving org/clojure/tools.cli/0.3.5/tools.cli-0.3.5.jar from central
And check the classpath now includes the tools.cli-0.3.5.jar
, which it does:
➜ app lein classpath
/home/mark/Code/Personal/clojure/app/test:/home/mark/Code/Personal/clojure/app/src:/home/mark/Code/Personal/clojure/app/dev-resources:/home/mark/Code/Personal/clojure/app/resources:/home/mark/Code/Personal/clojure/app/target/classes:/home/mark/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/home/mark/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar:/home/mark/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar:/home/mark/.m2/repository/org/clojure/tools.cli/0.3.5/tools.cli-0.3.5.jar:/home/mark/.m2/repository/org/clojure/tools.nrepl/0.2.12/tools.nrepl-0.2.12.jar:/home/mark/.m2/repository/clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar
So does it work?
➜ app lein vizdeps
clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate clojure/tools/cli__init.class or clojure/tools/cli.clj on classpath., compiling:(com/walmartlabs/vizdeps/common.clj:1:1)
Next I forked vizdeps to add the missing dependency walmartlabs/vizdeps#12 and installed it into local maven repo:
➜ vizdeps git:(master) lein install Created /home/mark/Code/OSS/vizdeps/target/vizdeps-0.1.7.jar Wrote /home/mark/Code/OSS/vizdeps/pom.xml Installed jar and pom into local repo.
Updated the project to use vizdeps-0.1.7
Running lein vizdeps
now presents a different error:
➜ app lein vizdeps
java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn
at cemerick.pomegranate.aether$resolve_dependencies_STAR_.invokeStatic (aether.clj:786)
Which would seem to originate from leiningen itself: https://github.com/technomancy/leiningen/search?utf8=%E2%9C%93&q=pomegranate&type=
Invoked by the plugin code https://github.com/walmartlabs/vizdeps/blob/master/src/leiningen/vizdeps.clj#L35
Reverting to Leiningen 2.7.1
and using the current vizdeps-0.1.6
release (not my fork) restores functionality.
For now I’m just going back to 2.7.1
from 2.8.1