简体   繁体   中英

Proguard can't read class

I have a project that uses Guava, problem is that guava takes up a lot of space, so I used proguard as they advise in their github documentation .

Problem, once I have completed my pom.xml file and I maven goal clean package, it doesn't build during my goal proguard.

[INFO] Attaching shaded artifact.
[INFO] 
[INFO] --- proguard-maven-plugin:2.0.4:proguard (default) @ Project ---
[INFO] execute ProGuard [-injars, 'C:\Users\Assim Zemouchi\IdeaProjects\Projects\Project - Discord\target\Project-1.0.0-shaded.jar'(!META-INF/maven/**), -outjars, 'C:\Users\Assim Zemouchi\IdeaProjects\Client\Projects\Project - Discord\target\Project-1.0.0-small.jar', -include, 'C:\Users\Assim Zemouchi\IdeaProjects\Client\Projects\Project - Discord\lib\config.pro', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\net\dv8tion\JDA\4.2.0_214\JDA-4.2.0_214.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\jetbrains\annotations\16.0.1\annotations-16.0.1.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\neovisionaries\nv-websocket-client\2.10\nv-websocket-client-2.10.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\squareup\okhttp3\okhttp\3.13.0\okhttp-3.13.0.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\squareup\okio\okio\1.17.2\okio-1.17.2.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar', -libraryjars, 'C:\Users\Assim Zemouchi\IdeaProjects\Projects\Project - Discord\lib\GAO.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\sparkjava\spark-core\2.9.3\spark-core-2.9.3.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-server\9.4.31.v20200723\jetty-server-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-http\9.4.31.v20200723\jetty-http-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-util\9.4.31.v20200723\jetty-util-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-io\9.4.31.v20200723\jetty-io-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-webapp\9.4.31.v20200723\jetty-webapp-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-xml\9.4.31.v20200723\jetty-xml-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-servlet\9.4.31.v20200723\jetty-servlet-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-security\9.4.31.v20200723\jetty-security-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\websocket\websocket-server\9.4.31.v20200723\websocket-server-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\websocket\websocket-common\9.4.31.v20200723\websocket-common-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\websocket\websocket-client\9.4.31.v20200723\websocket-client-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\jetty-client\9.4.31.v20200723\jetty-client-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\websocket\websocket-servlet\9.4.31.v20200723\websocket-servlet-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\eclipse\jetty\websocket\websocket-api\9.4.31.v20200723\websocket-api-9.4.31.v20200723.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\code\gson\gson\2.8.6\gson-2.8.6.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\io\github\portlek\configs-core\4.9.9.6\configs-core-4.9.9.6.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\io\github\portlek\reflection\3.7\reflection-3.7.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\io\github\portlek\replaceable\1.6\replaceable-1.6.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\io\github\portlek\version\1.6\version-1.6.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\io\github\portlek\mapentry\1.8\mapentry-1.8.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\me\carleslc\Simple-YAML\Simple-Configuration\1.7.1\Simple-Configuration-1.7.1.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\io\github\portlek\configs-yaml\4.9.9.6\configs-yaml-4.9.9.6.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\me\carleslc\Simple-YAML\Simple-Yaml\1.7.1\Simple-Yaml-1.7.1.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\yaml\snakeyaml\1.26\snakeyaml-1.26.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\atlassian\commonmark\commonmark\0.15.2\commonmark-0.15.2.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\nibor\autolink\autolink\0.10.0\autolink-0.10.0.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\zaxxer\HikariCP\3.4.5\HikariCP-3.4.5.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\guava\guava\30.0-jre\guava-30.0-jre.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\org\checkerframework\checker-qual\3.5.0\checker-qual-3.5.0.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\errorprone\error_prone_annotations\2.3.4\error_prone_annotations-2.3.4.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar', -libraryjars, 'C:\Users\Assim Zemouchi\.m2\repository\net\sf\proguard\proguard-base\6.2.2\proguard-base-6.2.2.jar', -libraryjars, 'C:\Program Files\Java\jdk1.8.0_251\jre/lib/rt.jar', -libraryjars, 'C:\Program Files\Java\jdk1.8.0_251\jre/lib/jsse.jar', -printmapping, 'C:\Users\Assim Zemouchi\IdeaProjects\Client\Projects\Project - Discord\target\proguard_map.txt', -printseeds, 'C:\Users\Assim Zemouchi\IdeaProjects\Client\Projects\Project - Discord\target\proguard_seeds.txt']
[INFO] proguard jar: C:\Users\Assim Zemouchi\.m2\repository\net\sf\proguard\proguard\4.3\proguard-4.3.jar
 [proguard] ProGuard, version 4.3
 [proguard] Reading program jar [C:\Users\Assim Zemouchi\IdeaProjects\Projects\Project - Discord\target\Project-1.0.0-shaded.jar] (filtered)
 [proguard] Error: Can't read [C:\Users\Assim Zemouchi\IdeaProjects\Client\Projects\Project - Discord\target\Project-1.0.0-shaded.jar(;;;;!META-INF/maven/**)] (Can't process class [fr/misterassm/commands/StatsCommand.class] (Unsupported version number [52.0] for class format))
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.895 s
[INFO] Finished at: 2020-11-22T14:34:16+01:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "artifactory" could not be activated because it does not exist.
[ERROR] Failed to execute goal com.pyx4me:proguard-maven-plugin:2.0.4:proguard (default) on project Project: Obfuscation failed (result=1) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

(Unsupported version number [52.0] for class format) Here's what I get out of it, and I don't understand why, I tried to remove this class from my project but it's another class that will have the same problem afterwards.

Here's my pom.xml:

<properties>
    <project.build.finalName>Project_Discord_${project.version}</project.build.finalName>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<build>
    <defaultGoal>clean package</defaultGoal>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.15</version>
            <configuration>
                <argLine>-Dfile.encoding=UTF-8</argLine>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <shadedClassifierName>shaded</shadedClassifierName>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>fr.misterassm.KamasBot</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </plugin>
        <plugin>
            <groupId>com.pyx4me</groupId>
            <artifactId>proguard-maven-plugin</artifactId>
            <version>2.0.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>proguard</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <proguardVersion>4.3</proguardVersion>
                <obfuscate>true</obfuscate>
                <injar>${project.build.finalName}-shaded.jar</injar>
                <outjar>${project.build.finalName}-small.jar</outjar>
                <proguardInclude>${basedir}/lib/config.pro</proguardInclude>
                <libs>
                    <lib>${java.home}/lib/rt.jar</lib>
                    <lib>${java.home}/lib/jsse.jar</lib>
                </libs>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>*</include>
            </includes>
        </resource>
    </resources>
</build>

<dependencies>
    ...
    
    <!-- Guava -->
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>30.0-jre</version>
    </dependency>
    <!-- Proguard -->
    <dependency>
        <groupId>net.sf.proguard</groupId>
        <artifactId>proguard-base</artifactId>
        <version>6.2.2</version>
    </dependency>
</dependencies>

(Unsupported version number [52.0] for class format) : this refers to the class format of Java, in this case Java 1.8.

I see that you are specifying to use proguard version 4.3 , which seems to have been released in 2008. That's six years prior to the release of Java 1.8. So it's not surprising that version of Proguard doesn't support those classes.

Change this line:

<proguardVersion>4.3</proguardVersion>

The latest version of progaurd as of writing is 7.0.0.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM