问题场景
在使用Maven + Proguard打包项目进行混淆时,提示以下错误:
[proguard] proguard.ParseException: Unknown option ‘-keepdirectories’ in line 57 of file ‘F:\Workspaces\middle\trunk\proguard.conf’,
[proguard] included from argument number 4
[proguard] at proguard.ConfigurationParser.parse(ConfigurationParser.java:164)
[proguard] at proguard.ProGuard.main(ProGuard.java:491)
Pom配置
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<proguardInclude>${basedir}/proguard.conf</proguardInclude>
<!-- 添加依赖,这里你可以按你的需要修改 -->
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>lib/jsp-api.jar</lib>
<lib>lib/servlet-api.jar</lib>
</libs>
<addMavenDescriptor>false</addMavenDescriptor>
</configuration>
</plugin>
问题分析
似乎是proguard-maven-plugin本身并不支持’-keepdirectories’选项!
解决方案
如果要支持该选项,需要添加依赖,使用其它版本的proguard
<dependencies>
<!-- 使用4.4版本来混淆 -->
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard</artifactId>
<version>4.4</version>
<scope>runtime</scope>
</dependency>
</dependencies>
注意,这里使用4.4版本的,有文章中使用4.8版本来混淆,但是在Maven的仓库中http://repo1.maven.org/maven2/net/sf/proguard/proguard/
找不到4.8的版本。
proguard.ParseException: Unknown option '-keepdirectories' in line 57 of file
时间: 2024-11-17 13:47:02