IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]proguard.ParseException: Unknown option \'-keepdirectories\' in line 57 of file

    testcs_dn发表于 2015-05-08 12:20:33
    love 0

    问题场景


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



沪ICP备19023445号-2号
友情链接