执行Maven Install打包的时候,出现以下错误信息:
[proguard] ProGuard, version 4.4 [proguard] Reading input... [proguard] Reading program war [F:\Workspaces\pro-test\target\pro-test-0.0.1-SNAPSHOT.war] (filtered) [proguard] java.io.IOException: Can't read [proguard.ClassPathEntry@5ef04b5] (Can't process class [WEB-INF/classes/pro/test/First.class] (Unsupported version number [52.0] for class format)) [proguard] at proguard.InputReader.readInput(InputReader.java:230) [proguard] at proguard.InputReader.readInput(InputReader.java:200) [proguard] at proguard.InputReader.readInput(InputReader.java:178) [proguard] at proguard.InputReader.execute(InputReader.java:78) [proguard] at proguard.ProGuard.readInput(ProGuard.java:195) [proguard] at proguard.ProGuard.execute(ProGuard.java:78) [proguard] at proguard.ProGuard.main(ProGuard.java:499)问题分析
产生该错误的原因是因为项目使用的Java(JDK)版本比较高,而ProGuard, version 4.4支持的版本(最高到1.6),所以产生该问题。
解决方案以问题的解决方案与“Error: Unsupported java version ‘1.8’ in line 2 of file ‘proguard.conf’”的一致:
改用com.github.wvengen的proguard-maven-plugin repo地址为:http://repo1.maven.org/maven2/com/github/wvengen/proguard-maven-plugin/ 完整示例如下:
<plugin> <groupId>com.github.wvengengroupId> <artifactId>proguard-maven-pluginartifactId> <version>2.0.10version> <executions> <execution> <phase>packagephase> <goals> <goal>proguardgoal> goals> execution> executions> <configuration> <proguardVersion>5.2proguardVersion> <obfuscate>trueobfuscate> <proguardInclude>${basedir}/proguard.confproguardInclude> <libs> <lib>${java.home}/lib/rt.jarlib> <lib>E:/tomcat-8.0/lib/jsp-api.jarlib> <lib>E:/tomcat-8.0/lib/servlet-api.jarlib> libs> <addMavenDescriptor>falseaddMavenDescriptor> <injar>${project.build.finalName}.warinjar> <outjar>${project.build.finalName}-pg.waroutjar> <outputDirectory>${project.build.directory}outputDirectory> configuration> <dependencies> <dependency> <groupId>net.sf.proguardgroupId> <artifactId>proguard-baseartifactId> <version>5.2version> <scope>runtimescope> dependency> dependencies> plugin>