Uploaded image for project: 'Maven Shade Plugin'
  1. Maven Shade Plugin
  2. MSHADE-156

shade plugin is transforming also strings that are not supposed to be transformed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.1
    • backlog
    • None

    Description

      I'm shading several third party libraries into a single JAR. In the context of this issue, there are two important libraries:

      1. com.nothome:javaxdelta:2.0.1 - this library is in "at.spardat.xma.xdelta" package.
      2. ch.qos.logback:logback-classic:1.0.11 - in this library, in class ch.qos.logback.classic.spi.StackTraceElementProxy, there is a method to convert stack trace elements into strings:

        public String getSTEAsString() {
          if (steAsString == null) {
            steAsString = "at " + ste.toString();
          }
          return steAsString;
        }
      

      I use "org.myorgname.appname.shaded" package for shading.

      During shading, the constant "at " is replaced with "org.myorgname.appname.shaded.at" – shade plugin thinks that the "at" in the beginning of that string is a package name and shades it.

      This results in an unfortunate side-effect: all logged stack traces now look like this:

      Caused by: java.util.zip.ZipException: error in opening zip file
      	org.myorgname.appname.shaded.at java.util.zip.ZipFile.open(Native Method) ~[na:1.6.0_19]
      	org.myorgname.appname.shaded.at java.util.zip.ZipFile.<init>(ZipFile.java:114) ~[na:1.6.0_19]
      	org.myorgname.appname.shaded.at java.util.zip.ZipFile.<init>(ZipFile.java:131) ~[na:1.6.0_19]
      

      Possible fixes:

      • instead of just checking the first part of the package (at), check for the full package (at.spardat.xma.xdelta).
      • allow to configure shade plugin to ignore certain string constants in certain classes (this would solve also some other issues we have with shade plugin being too eager).
      • both of the above.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              neeme Neeme Praks
              Votes:
              9 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated: