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

问题场景



在使用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-08-30 04:38:00

proguard.ParseException: Unknown option '-keepdirectories' in line 57 of file的相关文章

mysql数据库二进制初始化出现:170425 17:47:04 [ERROR] /application/mysql//bin/mysqld: unknown option &#39;--skip-locking&#39; 170425 17:47:04 [ERROR] Aborting 解决办法

[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/application/mysql/ --datadir=/application/mysql/data/Installing MySQL system tables...170425 17:47:04 [ERROR] /application/mysql//bin/mysqld: unknown option '--skip-locking

Error: Unsupported java version &#39;1.8&#39; in line 2 of file &#39;proguard.conf&#39;

执行Maven Install打包的时候,出现以下错误信息: [proguard] Error: Unsupported java version '1.8' in line 2 of file 'F:\Workspaces\pro-test\proguard.conf', [proguard] included from argument number 6 这是因为在proguard.conf文件中显示的指定的Java的版本,但是net\sf\proguard\proguard\4.4\pro

mysqldump: unknown option &#39;--no-beep&#39;

想要备份mysql数据库时,输入mysqldump命令出现如题所示的错误,在网上找了好久,终于从一个帖子上得到了一些提示,就动手试了下,嘿  还真成了!! mysqldump --no-defaults -u[用户名] -p[这里可以输入密码也可不输入,如不输入会再后面提示输入] 数据库名 > D:test.sql 就多了--no-defaults 这一部分 就成功了 哈哈!! 如: mysqldump --no-defaults -uroot -p123456 gt2_db gt_model>

proguard.ParseException: Expecting keyword &#39;class&#39;, &#39;interface&#39;, or &#39;enum&#39; before &#39;-libraryjars&#39; in

执行Maven Install打包的时候,出现以下错误信息: [proguard] proguard.ParseException: Expecting keyword 'class', 'interface', or 'enum' before '-libraryjars' in argument number 7 [proguard] at proguard.ConfigurationParser.readNextWord(ConfigurationParser.java:1206) [pr

解决curl: (48) An unknown option was passed in to libcurl

找了大牛解决了这个问题,有大牛的感觉真好!快速又准确!记录一下,解决办法: (百度了好多方法都解决不了我这边的问题!) 在一台服务器上报告了 curl: (48) An unknown option was passed in to libcurl 使用过 :  locate -r /curl$ 出现 很多curl版本,有点凌乱: 网上百度找了 curl的安装和下载,安装的时候,很顺利,启用的时候,就会报告: curl: (48) An unknown option was passed in

mysqldump: unknown option &#39;--no-beep&#39; 错误解决

今天用 mysqldump 命令备份数据库时,出现了问题,截图如下: 估计是版本的问题,我新装的 5.6 的,以前用的是 5.1 的,从来没出过问题. 网上找了一下,说查看 my.ini 发现[clien]下有 no-beep 参数,mysql客户端将会读取此参数(该参数作用暂时不知). 解决办法是: 删除my.ini [client]下的 no-beep 参数; 在 mysqldump 后加--no-defaults参数,即:mysqldump --no-defualts -h主机IP -u用

MySQL - Found option without preceding group in config file

1.1.1 现象 启动MYSQL超时,windows提示错误,在服务中MYSQL状态一直处于starting状态,执行MYSQL命令,出现如下错误信息: error:found option without preceding group in config file:E:\webserver\mysql5\my.ini at line :1 fatal error in defaults handling .program aborted. 1.1.2 原因 配置文件My.ini的存储格式不正

Found option without preceding group in config file

报错: error: Found option without preceding group in config file: /etc/my.cnf at line: 1 解决方法: 在mysql配置文件最上面加一行 [mysqld]

error: bad top line in state file /var/lib/logrotate.status 解决方法

发现日志切割并没有按计划执行,后来手动强制执行时,发现如下报错: [[email protected] logrotate.d]# logrotate -f httpd error: bad top line in state file /var/lib/logrotate.status [[email protected] logrotate.d]# 解决访求: 删除/var/lib/logrotate.status 这个文件即可解决. 解决后,最好再运行一下logrotate -f /etc