proguard.ParseException: Unknown option '-keepdirectories' in line 57 of file

来源:互联网 发布:非法网络渗透罪 编辑:程序博客网 时间:2024/05/17 05:59

问题场景


在使用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的版本。

1 0
原创粉丝点击