yogthos / lein-asset-minifier

Leiningen plugin for CSS/Js asset minifcation
Eclipse Public License 1.0
41 stars 7 forks source link

Dependency issues with latest Leiningen releases (>2.9.3) #20

Open jessesaga opened 3 years ago

jessesaga commented 3 years ago

This plugin works with Leiningen versions up to 2.9.3. Versions 2.9.4 and 2.9.5 cause the following exception.

minifying assets...
Execution error (NoSuchFieldError) at com.google.javascript.jscomp.parsing.JsDocInfoParser/validTemplateTypeName (JsDocInfoParser.java:1208).
JAVA_UPPER_CASE

yogthos commented 3 years ago

It looks like an issue with the Google closure compiler dependency version. Would you be able to check your lein deps :tree output and see what version it prints for the working scenario, and also try adding it explicitly with newer lein versions to see if that would address the problem.

jessesaga commented 3 years ago

I think it's a conflict with the lein-nvd plugin.

An excerpt of the output of lein deps :plugin-tree (below) shows the following dependencies. If I remove lein-nvd as a plugin everything works with recent versions of Leiningen and lein-asset-minifier. (tested against 2.9.3, 2.9.4, and 2.9.5)

It's odd that newer versions of Leiningen fail with the combination of these plugins. I wonder if classpath handling for plugins changed post Leiningen 2.9.3.....

 [lein-nvd "1.4.0"]
   [com.cemerick/pomegranate "1.1.0"]
     [org.apache.maven.resolver/maven-resolver-connector-basic "1.0.3"]
     [org.apache.maven.resolver/maven-resolver-transport-file "1.0.3"]
     [org.apache.maven.resolver/maven-resolver-transport-http "1.0.3"]
       [org.slf4j/jcl-over-slf4j "1.6.2"]
     [org.apache.maven.resolver/maven-resolver-transport-wagon "1.0.3"]
     [org.apache.maven.wagon/wagon-http "3.0.0"]
       [org.apache.httpcomponents/httpcore "4.4.6"]
       [org.apache.maven.wagon/wagon-http-shared "3.0.0"]
     [org.apache.maven.wagon/wagon-provider-api "3.0.0"]
     [org.apache.maven/maven-resolver-provider "3.5.3"]
       [javax.inject "1"]
       [org.apache.commons/commons-lang3 "3.5"]
       [org.apache.maven.resolver/maven-resolver-api "1.1.1"]
       [org.apache.maven.resolver/maven-resolver-impl "1.1.1"]
       [org.apache.maven.resolver/maven-resolver-spi "1.1.1"]
       [org.apache.maven.resolver/maven-resolver-util "1.1.1"]
       [org.apache.maven/maven-model-builder "3.5.3"]
         [org.apache.maven/maven-artifact "3.5.3"]
         [org.apache.maven/maven-builder-support "3.5.3"]
         [org.codehaus.plexus/plexus-component-annotations "1.7.1" :exclusions [[junit]]]
         [org.codehaus.plexus/plexus-interpolation "1.24"]
       [org.apache.maven/maven-model "3.5.3"]
       [org.apache.maven/maven-repository-metadata "3.5.3"]
       [org.codehaus.plexus/plexus-utils "3.1.0"]
   [nvd-clojure "1.4.0"]
     [clansi "1.0.0"]
     [org.owasp/dependency-check-core "5.2.4"]
       [com.github.package-url/packageurl-java "1.1.1"]
       [com.google.code.gson/gson "2.8.5"]
       [com.google.guava/guava "28.1-jre"]
         [com.google.code.findbugs/jsr305 "3.0.2"]
         [com.google.errorprone/error_prone_annotations "2.3.2"]
         [com.google.guava/failureaccess "1.0.1"]
         [com.google.guava/listenablefuture "9999.0-empty-to-avoid-conflict-with-guava"]
         [com.google.j2objc/j2objc-annotations "1.3"]
         [org.checkerframework/checker-qual "2.8.1"]
         [org.codehaus.mojo/animal-sniffer-annotations "1.18"]
       [com.h2database/h2 "1.4.196" :scope "runtime"]
       [com.h3xstream.retirejs/retirejs-core "3.0.1"]
         [com.esotericsoftware/minlog "1.3"]
         [com.github.spullara.mustache.java/compiler "0.8.17"]
         [org.json/json "20140107"]
       [com.moandjiezana.toml/toml4j "0.7.2"]
       [com.sun.mail/mailapi "1.6.4"]
         [com.sun.activation/jakarta.activation "1.2.1"]
       [com.vdurmont/semver4j "3.1.0"]
       [commons-collections "3.2.2"]
       [org.apache.commons/commons-compress "1.19"]
       [org.apache.commons/commons-jcs-core "2.2.1"]
       [org.apache.commons/commons-text "1.8"]
       [org.apache.lucene/lucene-analyzers-common "8.3.0"]
       [org.apache.lucene/lucene-core "8.3.0"]
       [org.apache.lucene/lucene-queryparser "8.3.0"]
         [org.apache.lucene/lucene-queries "8.3.0" :exclusions [[org.apache.lucene/lucene-core]]]
         [org.apache.lucene/lucene-sandbox "8.3.0" :exclusions [[org.apache.lucene/lucene-core]]]
       [org.apache.velocity/velocity-engine-core "2.1"]
       [org.glassfish/javax.json "1.0.4"]
       [org.jsoup/jsoup "1.12.1"]
       [org.owasp/dependency-check-utils "5.2.4"]
       [org.sonatype.ossindex/ossindex-service-client "1.2.0" :exclusions [[org.apache.httpcomponents/httpclient] [org.apache.httpcomponents/httpcore]]]
         [joda-time "2.9.9"]
         [org.sonatype.ossindex/ossindex-service-api "1.2.0"]
           [javax.ws.rs/javax.ws.rs-api "2.0.1"]
           [org.sonatype.goodies/package-url-java "1.0.1"]
       [us.springett/cpe-parser "2.0.1"]
     [org.slf4j/slf4j-simple "1.7.29"]
       [org.slf4j/slf4j-api "1.7.29"]
     [rm-hull/table "0.7.1"]
     [trptcolin/versioneer "0.2.0"]
   [org.clojure/data.json "0.2.6"]
yogthos commented 3 years ago

Ah I see, it might be worth looking at updating closure compiler in asset-minifier to the same version as lein-nvd uses. I won't have time to look at that in the near future, but if you'd be up for taking a stab at it I'd be glad to help with the PR and push an update to Clojars.

danielcompton commented 2 years ago

Related: https://github.com/eriwen/gradle-js-plugin/issues/170