benedekfazekas / mranderson

Dependency inlining and shadowing
Eclipse Public License 1.0
151 stars 14 forks source link

The system cannot find the file specified #44

Closed byrongibby closed 3 years ago

byrongibby commented 5 years ago

Hi

Could someone please help me with the following error:

C:\git\databot2\databot\src\za\co\resbank>lein inline-deps
project prefix:  mrandersonb765aca7
retrieve dependencies and munge clojure source files
in RESOLVED-TREE mode, working on a resolved dependency tree
 [clj-http "3.10.0"]
   [commons-io "2.6" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpmime "4.5.8" :exclusions [[org.clojure/clojure]]]
   [potemkin "0.4.5" :exclusions [[org.clojure/clojure]]]
     [clj-tuple "0.2.2"]
     [riddley "0.1.12"]
   [org.apache.httpcomponents/httpclient "4.5.8" :exclusions [[org.clojure/clojure]]]
     [commons-logging "1.2"]
   [org.apache.httpcomponents/httpcore "4.4.11" :exclusions [[org.clojure/clojure]]]
   [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpclient-cache "4.5.8" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpasyncclient "4.1.4" :exclusions [[org.clojure/clojure]]]
     [org.apache.httpcomponents/httpcore-nio "4.4.10"]
   [commons-codec "1.12" :exclusions [[org.clojure/clojure]]]
unzipping [ clj-http  [ v3v10v0 ]]
unzipping [ httpmime  [ v4v5v8 ]]
unzipping [ commons-io  [ v2v6 ]]
unzipping [ potemkin  [ v0v4v5 ]]
unzipping [ clj-tuple  [ v0v2v2 ]]
unzipping [ httpclient-cache  [ v4v5v8 ]]
unzipping [ httpasyncclient  [ v4v1v4 ]]
unzipping [ httpclient  [ v4v5v8 ]]
unzipping [ commons-logging  [ v1v2 ]]
unzipping [ commons-codec  [ v1v12 ]]
unzipping [ httpcore-nio  [ v4v4v10 ]]
unzipping [ httpcore  [ v4v4v11 ]]
unzipping [ slingshot  [ v0v12v2 ]]
unzipping [ riddley  [ v0v1v12 ]]
  munge source files of riddley artifact on branch [] exposed false.
java.io.FileNotFoundException: target\default\srcdeps\riddley\compiler.clj (The system cannot find the file specified)

My project.clj looks as follows:

(defproject za.co.resbank.databot "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
            :url "https://www.eclipse.org/legal/epl-2.0/"}
  :dependencies [[org.clojure/clojure "1.10.0"]
                 [org.clojure/data.csv "0.1.4"]
                 [cheshire "5.8.1"]
                 ^:inline-dep [clj-http "3.10.0"]
                 [seesaw "1.5.0"]
                 [za.co.resbank/haverapi-java "2.1.0.0"]
                 [com.bloomberglp/blpapi "3.12.1-1"]
                 [clojure.java-time "0.3.2"]]
  :main ^:skip-aot za.co.resbank.databot
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}}
  :plugins [[thomasa/mranderson "0.5.1"]])
benedekfazekas commented 5 years ago

hi @byrongibby i will have a look

byrongibby commented 5 years ago

Thanks a lot!

byrongibby commented 5 years ago

I reran things on an empty project lein new app mranderson-test:

(defproject mranderson-test "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
            :url "https://www.eclipse.org/legal/epl-2.0/"}
  :dependencies [[org.clojure/clojure "1.10.0"]
                 ^:inline-dep [riddley "0.1.12"]]
  :main ^:skip-aot mranderson-test.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}}
  :plugins [[thomasa/mranderson "0.5.1"]])

Produces the same error:

C:\git\mranderson-test>lein inline-deps
project prefix:  mranderson3b6ce55b
retrieve dependencies and munge clojure source files
in RESOLVED-TREE mode, working on a resolved dependency tree
 [riddley "0.1.12"]
unzipping [ riddley  [ v0v1v12 ]]
  munge source files of riddley artifact on branch [] exposed false.
java.io.FileNotFoundException: target\default\srcdeps\riddley\compiler.clj (The system cannot find the file specified)
byrongibby commented 5 years ago

I'm using

java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

on Windows 10.

benedekfazekas commented 5 years ago

had a look. the riddley jar looks a bit weird to be honest. this is the list of files in the jar:

.m2/repository/riddley/riddley/0.1.12/riddley-0.1.12.jar
  Length      Date    Time    Name
---------  ---------- -----   ----
      117  01-05-2016 23:37   META-INF/MANIFEST.MF
     2683  01-05-2016 23:37   META-INF/maven/riddley/riddley/pom.xml
      561  01-05-2016 23:37   META-INF/leiningen/riddley/riddley/project.clj
      561  01-05-2016 23:37   project.clj
     2135  01-05-2016 23:37   META-INF/leiningen/riddley/riddley/README.md
        0  01-05-2016 23:37   META-INF/
        0  01-05-2016 23:37   META-INF/maven/
        0  01-05-2016 23:37   META-INF/maven/riddley/
        0  01-05-2016 23:37   META-INF/maven/riddley/riddley/
      143  01-05-2016 23:37   META-INF/maven/riddley/riddley/pom.properties
        0  01-05-2016 23:37   riddley/
     1040  01-05-2016 23:37   riddley/Util.class
     6148  09-07-2013 11:11   riddley/.DS_Store
     2098  10-30-2013 16:15   riddley/compiler.clj
      495  09-01-2013 22:03   riddley/Util.java
     8564  01-05-2016 15:26   riddley/walk.clj
     2098  10-30-2013 16:15   compiler.clj
      495  09-01-2013 22:03   Util.java
     8564  01-05-2016 15:26   walk.clj
---------                     -------
    35702                     19 files

note that both walk.clj and compiler.clj is duplicated which I guess confuses mranderson when it unzips the jar. I am guessing the reason the jar is looks like this is this line in riddley's project file: :java-source-paths ["src/riddley"].

I can look into trying to track down the exact cause of why mranderson chokes on this and find a workaround but I would argue that the uberjar should not look like this. Please check if you can have this fixed in riddley.

byrongibby commented 5 years ago

Will do. Thank you for the time and effort.

Would the following assessment be correct:

  1. This version of riddley is used in clj-http which is a widely used package which, as a result, is rendered incompatible with mranderson
  2. Even if the problem lies with riddley, the version used by clj-http is 0.1.12 while the latest version is 0.2.0, therefore I can count out using mranderson in the near future

That is not to suggest that the mranderson team has any responsibility to fix the issue, I just want to ask if I am seeing this correctly?

byrongibby commented 5 years ago

I have posted this issue to the riddley team: https://github.com/ztellman/riddley/issues/31

benedekfazekas commented 5 years ago

well. I suppose you can formalise this like your two above points. but we are in a bit grey area in terms of who should fix what. I mean apparently the uberjar is working fine so I would not be surprised if this issue did not get much attention at riddley -- unless this causes problems for other tools which i am not aware of.

that said I am happy to look into this further to see if there is a quick fix for this. we are also on the green pastures of open source here so you can do the same: I am also happy to review/accept pull requests if you come up with a fix ;)

byrongibby commented 5 years ago

It's likely beyond my ability, but maybe that's a perfectly good reason to expand my ability.

The the reason I need mranderson is not immediately necessary, so let me give it a go.

benedekfazekas commented 5 years ago

I pushed a fix to a branch: https://github.com/benedekfazekas/mranderson/tree/fix-44 I am not really sure i want to release as is into the wild. I might want to wrap this into a config option or something so you explicitly need to config for filtering out those files that have a path not matching their ns declaration.

anyways before proceeding would be nice if you tested this.

  1. check out the above branch
  2. run lein do clean, install
  3. go to your project and change mranderson version to 0.5.2-SNAPSHOT
  4. run lein do clean, inline-deps
  5. I expect this to run now without exception but also please test that the inlined version actually works: run your app, run your tests with the inlined deps (see mranderson readme how to do that or ping me)
byrongibby commented 5 years ago

Great! Will do.

byrongibby commented 5 years ago

Everything is working as expected

C:\git\databot2\databot\src\za\co\resbank>lein inline-deps
project prefix:  mranderson46526d23
retrieve dependencies and munge clojure source files
in RESOLVED-TREE mode, working on a resolved dependency tree

C:\git\databot2\databot\src\za\co\resbank>

And I am no longer getting package/version conflicts in MATLAB. This has been a huge help to me, thank you very much!

I will continue to monitor the issue I posted on riddley and hopefully get the problem sorted out there with the aim of making fix-44 unnecessary in the future.

EDIT: So my initial test was flawed, it is not working to hide the dependencies from MATLAB, but I guess the problem is on my side now...

benedekfazekas commented 5 years ago

i keep this open as you still seem to have problems and as the fix is not yet incorporated into master or released.

wonder why the hiding/shadowing is not working though... please refer to https://github.com/benedekfazekas/mranderson#usage part of the readme to figure out how to make sure you run your app/repl etc with the inlined deps.

byrongibby commented 5 years ago

I made a few stupid mistakes, having resolved them things look like this, I am unable to run the repl or package the JAR without an error from lein:

Microsoft Windows [Version 10.0.17134.523]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\git\databot2\databot>lein do clean

C:\git\databot2\databot>lein inline-deps
project prefix:  mranderson9a2f6379
retrieve dependencies and munge clojure source files
in RESOLVED-TREE mode, working on a resolved dependency tree
 [cheshire "5.8.1"]
   [com.fasterxml.jackson.core/jackson-core "2.9.6"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.9.6"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.9.6"]
   [tigris "0.1.1"]
 [clj-http "3.10.0"]
   [commons-io "2.6" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpmime "4.5.8" :exclusions [[org.clojure/clojure]]]
   [potemkin "0.4.5" :exclusions [[org.clojure/clojure]]]
     [riddley "0.1.12"]
   [org.apache.httpcomponents/httpclient "4.5.8" :exclusions [[org.clojure/clojure]]]
     [commons-logging "1.2"]
   [org.apache.httpcomponents/httpcore "4.4.11" :exclusions [[org.clojure/clojure]]]
   [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpclient-cache "4.5.8" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpasyncclient "4.1.4" :exclusions [[org.clojure/clojure]]]
     [org.apache.httpcomponents/httpcore-nio "4.4.10"]
   [commons-codec "1.12" :exclusions [[org.clojure/clojure]]]
 [clojure.java-time "0.3.2"]
   [clj-tuple "0.2.2"]
 [com.bloomberglp/blpapi "3.12.1-1"]
 [org.clojure/data.csv "0.1.4"]
 [seesaw "1.5.0"]
   [com.fifesoft/rsyntaxtextarea "2.5.6"]
   [com.jgoodies/forms "1.2.1"]
   [com.miglayout/miglayout "3.7.4"]
   [j18n "1.0.2"]
   [org.swinglabs.swingx/swingx-core "1.6.3"]
     [org.swinglabs.swingx/swingx-action "1.6.3"]
     [org.swinglabs.swingx/swingx-autocomplete "1.6.3"]
       [org.swinglabs.swingx/swingx-common "1.6.3"]
     [org.swinglabs.swingx/swingx-painters "1.6.3"]
     [org.swinglabs.swingx/swingx-plaf "1.6.3"]
 [za.co.resbank/haverapi-java "2.1.0.0"]
   [net.java.dev.jna/jna "5.3.1"]
unzipping [ seesaw  [ v1v5v0 ]]
unzipping [ cheshire  [ v5v8v1 ]]
unzipping [ jackson-dataformat-smile  [ v2v9v6 ]]
unzipping [ clj-http  [ v3v10v0 ]]
unzipping [ httpmime  [ v4v5v8 ]]
unzipping [ commons-io  [ v2v6 ]]
unzipping [ potemkin  [ v0v4v5 ]]
unzipping [ clojurejava-time  [ v0v3v2 ]]
unzipping [ clj-tuple  [ v0v2v2 ]]
unzipping [ swingx-core  [ v1v6v3 ]]
unzipping [ swingx-autocomplete  [ v1v6v3 ]]
unzipping [ tigris  [ v0v1v1 ]]
unzipping [ swingx-painters  [ v1v6v3 ]]
unzipping [ swingx-plaf  [ v1v6v3 ]]
unzipping [ swingx-common  [ v1v6v3 ]]
unzipping [ forms  [ v1v2v1 ]]
unzipping [ haverapi-java  [ v2v1v0v0 ]]
unzipping [ jna  [ v5v3v1 ]]
unzipping [ httpclient-cache  [ v4v5v8 ]]
unzipping [ httpasyncclient  [ v4v1v4 ]]
unzipping [ httpclient  [ v4v5v8 ]]
unzipping [ datacsv  [ v0v1v4 ]]
unzipping [ commons-logging  [ v1v2 ]]
unzipping [ commons-codec  [ v1v12 ]]
unzipping [ rsyntaxtextarea  [ v2v5v6 ]]
unzipping [ miglayout  [ v3v7v4 ]]
unzipping [ jn  [ v1v0v2 ]]
unzipping [ httpcore-nio  [ v4v4v10 ]]
unzipping [ httpcore  [ v4v4v11 ]]
unzipping [ slingshot  [ v0v12v2 ]]
unzipping [ jackson-dataformat-cbor  [ v2v9v6 ]]
unzipping [ jackson-core  [ v2v9v6 ]]
unzipping [ blpapi  [ v3v12v1-1 ]]
unzipping [ swingx-action  [ v1v6v3 ]]
unzipping [ riddley  [ v0v1v12 ]]
  munge source files of riddley artifact on branch [] exposed false.
  munge source files of swingx-action artifact on branch [] exposed false.
  munge source files of blpapi artifact on branch [] exposed false.
  munge source files of jackson-core artifact on branch [] exposed false.
  munge source files of jackson-dataformat-cbor artifact on branch [] exposed false.
  munge source files of slingshot artifact on branch [] exposed false.
  munge source files of httpcore artifact on branch [] exposed false.
  munge source files of httpcore-nio artifact on branch [] exposed false.
  munge source files of jn artifact on branch [] exposed false.
  munge source files of miglayout artifact on branch [] exposed false.
  munge source files of rsyntaxtextarea artifact on branch [] exposed false.
  munge source files of commons-codec artifact on branch [] exposed false.
  munge source files of commons-logging artifact on branch [] exposed false.
  munge source files of datacsv artifact on branch [] exposed false.
  munge source files of httpclient artifact on branch [] exposed false.
  munge source files of httpasyncclient artifact on branch [] exposed false.
  munge source files of httpclient-cache artifact on branch [] exposed false.
  munge source files of jna artifact on branch [] exposed false.
  munge source files of haverapi-java artifact on branch [] exposed false.
  munge source files of forms artifact on branch [] exposed false.
  munge source files of swingx-common artifact on branch [] exposed false.
  munge source files of swingx-plaf artifact on branch [] exposed false.
  munge source files of swingx-painters artifact on branch [] exposed false.
  munge source files of tigris artifact on branch [] exposed false.
  munge source files of swingx-autocomplete artifact on branch [] exposed false.
  munge source files of swingx-core artifact on branch [] exposed false.
  munge source files of clj-tuple artifact on branch [] exposed false.
    new ns: mranderson9a2f6379.clj-tuple.v0v2v2.clj-tuple
  munge source files of clojurejava-time artifact on branch [] exposed false.
    new ns: mranderson9a2f6379.clojurejava-time.v0v3v2.java-time
  munge source files of potemkin artifact on branch [] exposed false.
    new ns: mranderson9a2f6379.potemkin.v0v4v5.potemkin
  munge source files of commons-io artifact on branch [] exposed false.
  munge source files of httpmime artifact on branch [] exposed false.
  munge source files of clj-http artifact on branch [] exposed false.
  munge source files of jackson-dataformat-smile artifact on branch [] exposed false.
  munge source files of cheshire artifact on branch [] exposed false.
  munge source files of seesaw artifact on branch [] exposed false.

C:\git\databot2\databot>lein with-profile +plugin.mranderson/config uberjar
Compiling za.co.resbank.bloomberg
Syntax error compiling at (bloomberg.clj:1:1).
Exception in thread "main" Syntax error compiling at (bloomberg.clj:1:1).
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3707)
        ...
Caused by: java.io.FileNotFoundException: Could not locate java_time__init.class, java_time.clj or java_time.cljc on classpath. Please check that namespa
ces with dashes use underscores in the Clojure file name.
        ...
Compilation failed: Subprocess failed
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
Error encountered performing task 'uberjar' with profile(s): 'base,system,user,provided,dev,config'
Uberjar aborting because jar failed: Compilation failed: Subprocess failed

My project.clj

(defproject za.co.resbank.databot "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
            :url "https://www.eclipse.org/legal/epl-2.0/"}
  :dependencies [[org.clojure/clojure "1.10.0"]
                 ^:inline-dep [org.clojure/data.csv "0.1.4"]
                 ^:inline-dep [cheshire "5.8.1"]
                 ^:inline-dep [clj-http "3.10.0"]
                 ^:inline-dep [seesaw "1.5.0"]
                 ^:inline-dep [za.co.resbank/haverapi-java "2.1.0.0"]
                 ^:inline-dep [com.bloomberglp/blpapi "3.12.1-1"]
                 ^:inline-dep [clojure.java-time "0.3.2"]]
  :main ^:skip-aot za.co.resbank.databot
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}}
  :plugins [[thomasa/mranderson "0.5.2-SNAPSHOT"]])
benedekfazekas commented 5 years ago

can't you just inline clj-http as in the previous try?

byrongibby commented 5 years ago

Okay. On a fresh project lein new app mranderson-test with the only added (inlined) dependency being clj-http, lein with-profile +plugin.mranderson/config uberjar runs successfully.

As soon as I require [clj-http.client :as client] in the ns form, it no longer packages the JAR:

C:\git\mranderson-test>lein with-profile +plugin.mranderson/config uberjar
Compiling mranderson-test.core
Syntax error compiling at (core.clj:1:1).
Exception in thread "main" Syntax error compiling at (core.clj:1:1).
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3707)
        at clojure.lang.Compiler.compile1(Compiler.java:7730)
        at clojure.lang.Compiler.compile1(Compiler.java:7720)
        at clojure.lang.Compiler.compile(Compiler.java:7797)
        at clojure.lang.RT.compile(RT.java:415)
        at clojure.lang.RT.load(RT.java:461)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$compile$fn__6829.invoke(core.clj:6136)
        at clojure.core$compile.invokeStatic(core.clj:6136)
        at clojure.core$compile.invoke(core.clj:6128)
        at user$eval155$fn__164.invoke(form-init1340189419723536912.clj:1)
        at user$eval155.invokeStatic(form-init1340189419723536912.clj:1)
        at user$eval155.invoke(form-init1340189419723536912.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7176)
        at clojure.lang.Compiler.eval(Compiler.java:7166)
        at clojure.lang.Compiler.eval(Compiler.java:7166)
        at clojure.lang.Compiler.load(Compiler.java:7635)
        at clojure.lang.Compiler.loadFile(Compiler.java:7573)
        at clojure.main$load_script.invokeStatic(main.clj:452)
        at clojure.main$init_opt.invokeStatic(main.clj:454)
        at clojure.main$init_opt.invoke(main.clj:454)
        at clojure.main$initialize.invokeStatic(main.clj:485)
        at clojure.main$null_opt.invokeStatic(main.clj:519)
        at clojure.main$null_opt.invoke(main.clj:516)
        at clojure.main$main.invokeStatic(main.clj:598)
        at clojure.main$main.doInvoke(main.clj:561)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.lang.Var.applyTo(Var.java:705)
        at clojure.main.main(main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate clj_http/client__init.class, clj_http/client.clj or clj_http/client.cljc on classpath. Please
check that namespaces with dashes use underscores in the Clojure file name.
        at clojure.lang.RT.load(RT.java:466)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at mranderson_test.core$loading__6706__auto____171.invoke(core.clj:1)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3702)
        ... 33 more
Compilation failed: Subprocess failed
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
Error encountered performing task 'uberjar' with profile(s): 'base,system,user,provided,dev,config'
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
benedekfazekas commented 5 years ago

you need to clean and rerun inline deps when you edit core.clj

byrongibby commented 5 years ago

Like so?

C:\git\mranderson-test>lein do clean, inline-deps, with-profile +plugin.mranderson/config uberjar
project prefix:  mrandersondc3099b1
retrieve dependencies and munge clojure source files
in RESOLVED-TREE mode, working on a resolved dependency tree
 [clj-http "3.10.0"]
   [commons-io "2.6" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpmime "4.5.8" :exclusions [[org.clojure/clojure]]]
   [potemkin "0.4.5" :exclusions [[org.clojure/clojure]]]
     [clj-tuple "0.2.2"]
     [riddley "0.1.12"]
   [org.apache.httpcomponents/httpclient "4.5.8" :exclusions [[org.clojure/clojure]]]
     [commons-logging "1.2"]
   [org.apache.httpcomponents/httpcore "4.4.11" :exclusions [[org.clojure/clojure]]]
   [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpclient-cache "4.5.8" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpasyncclient "4.1.4" :exclusions [[org.clojure/clojure]]]
     [org.apache.httpcomponents/httpcore-nio "4.4.10"]
   [commons-codec "1.12" :exclusions [[org.clojure/clojure]]]
unzipping [ clj-http  [ v3v10v0 ]]
unzipping [ httpmime  [ v4v5v8 ]]
unzipping [ commons-io  [ v2v6 ]]
unzipping [ potemkin  [ v0v4v5 ]]
unzipping [ clj-tuple  [ v0v2v2 ]]
unzipping [ httpclient-cache  [ v4v5v8 ]]
unzipping [ httpasyncclient  [ v4v1v4 ]]
unzipping [ httpclient  [ v4v5v8 ]]
unzipping [ commons-logging  [ v1v2 ]]
unzipping [ commons-codec  [ v1v12 ]]
unzipping [ httpcore-nio  [ v4v4v10 ]]
unzipping [ httpcore  [ v4v4v11 ]]
unzipping [ slingshot  [ v0v12v2 ]]
unzipping [ riddley  [ v0v1v12 ]]
  munge source files of riddley artifact on branch [] exposed false.
  munge source files of slingshot artifact on branch [] exposed false.
  munge source files of httpcore artifact on branch [] exposed false.
  munge source files of httpcore-nio artifact on branch [] exposed false.
  munge source files of commons-codec artifact on branch [] exposed false.
  munge source files of commons-logging artifact on branch [] exposed false.
  munge source files of httpclient artifact on branch [] exposed false.
  munge source files of httpasyncclient artifact on branch [] exposed false.
  munge source files of httpclient-cache artifact on branch [] exposed false.
  munge source files of clj-tuple artifact on branch [] exposed false.
    new ns: mrandersondc3099b1.clj-tuple.v0v2v2.clj-tuple
  munge source files of potemkin artifact on branch [] exposed false.
    new ns: mrandersondc3099b1.potemkin.v0v4v5.potemkin
  munge source files of commons-io artifact on branch [] exposed false.
  munge source files of httpmime artifact on branch [] exposed false.
  munge source files of clj-http artifact on branch [] exposed false.
Compiling mranderson-test.core
Syntax error compiling at (core.clj:1:1).
Exception in thread "main" Syntax error compiling at (core.clj:1:1).
...
Caused by: java.io.FileNotFoundException: Could not locate clj_http/client__init.class, clj_http/client.clj or clj_http/client.cljc on classpath. Please check that namespaces with dashe
s use underscores in the Clojure file name.
...
Compilation failed: Subprocess failed
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
Error encountered performing task 'uberjar' with profile(s): 'base,system,user,provided,dev,config'
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
benedekfazekas commented 5 years ago

not sure you can use with-profile like this. can you pls retry in two separate step? inline first, uberjarring next

byrongibby commented 5 years ago

Unfortunately the same result:

C:\git\mranderson-test>lein do clean, inline-deps
project prefix:  mranderson43f30ef8
retrieve dependencies and munge clojure source files
in RESOLVED-TREE mode, working on a resolved dependency tree
 [clj-http "3.10.0"]
   [commons-io "2.6" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpmime "4.5.8" :exclusions [[org.clojure/clojure]]]
   [potemkin "0.4.5" :exclusions [[org.clojure/clojure]]]
     [clj-tuple "0.2.2"]
     [riddley "0.1.12"]
   [org.apache.httpcomponents/httpclient "4.5.8" :exclusions [[org.clojure/clojure]]]
     [commons-logging "1.2"]
   [org.apache.httpcomponents/httpcore "4.4.11" :exclusions [[org.clojure/clojure]]]
   [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpclient-cache "4.5.8" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpasyncclient "4.1.4" :exclusions [[org.clojure/clojure]]]
     [org.apache.httpcomponents/httpcore-nio "4.4.10"]
   [commons-codec "1.12" :exclusions [[org.clojure/clojure]]]
unzipping [ clj-http  [ v3v10v0 ]]
unzipping [ httpmime  [ v4v5v8 ]]
unzipping [ commons-io  [ v2v6 ]]
unzipping [ potemkin  [ v0v4v5 ]]
unzipping [ clj-tuple  [ v0v2v2 ]]
unzipping [ httpclient-cache  [ v4v5v8 ]]
unzipping [ httpasyncclient  [ v4v1v4 ]]
unzipping [ httpclient  [ v4v5v8 ]]
unzipping [ commons-logging  [ v1v2 ]]
unzipping [ commons-codec  [ v1v12 ]]
unzipping [ httpcore-nio  [ v4v4v10 ]]
unzipping [ httpcore  [ v4v4v11 ]]
unzipping [ slingshot  [ v0v12v2 ]]
unzipping [ riddley  [ v0v1v12 ]]
  munge source files of riddley artifact on branch [] exposed false.
  munge source files of slingshot artifact on branch [] exposed false.
  munge source files of httpcore artifact on branch [] exposed false.
  munge source files of httpcore-nio artifact on branch [] exposed false.
  munge source files of commons-codec artifact on branch [] exposed false.
  munge source files of commons-logging artifact on branch [] exposed false.
  munge source files of httpclient artifact on branch [] exposed false.
  munge source files of httpasyncclient artifact on branch [] exposed false.
  munge source files of httpclient-cache artifact on branch [] exposed false.
  munge source files of clj-tuple artifact on branch [] exposed false.
    new ns: mranderson43f30ef8.clj-tuple.v0v2v2.clj-tuple
  munge source files of potemkin artifact on branch [] exposed false.
    new ns: mranderson43f30ef8.potemkin.v0v4v5.potemkin
  munge source files of commons-io artifact on branch [] exposed false.
  munge source files of httpmime artifact on branch [] exposed false.
  munge source files of clj-http artifact on branch [] exposed false.

C:\git\mranderson-test>lein do with-profile +plugin.mranderson/config uberjar
Compiling mranderson-test.core
Syntax error compiling at (core.clj:1:1).
Exception in thread "main" Syntax error compiling at (core.clj:1:1).
...
Caused by: java.io.FileNotFoundException: Could not locate clj_http/client__init.class, clj_http/client.clj or clj_http/client.cljc on classpath. Please check that namespaces with dashe
s use underscores in the Clojure file name.
...
Compilation failed: Subprocess failed
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
Error encountered performing task 'uberjar' with profile(s): 'base,system,user,provided,dev,config'
Uberjar aborting because jar failed: Compilation failed: Subprocess failed
benedekfazekas commented 5 years ago

will have a look on my local

byrongibby commented 5 years ago

Thanks, I will check on my Linux box as well.

EDIT: It gives the same result...

benedekfazekas commented 5 years ago

i had just a very short time to look at this and did not manage to make this work. BUT I did manage to pass the above error. This basically caused by this line in the project.clj: :target-path "target/%s" this changes the target path obviously which confuses mranderson. The reason for this is obviously MrAnderson's bug: eg it has target/srcdeps hardcoded somewhere. Will file an issue and fix that.

byrongibby commented 5 years ago

That's good news, looking forward to a solution.