【问题标题】:How to use proguard-maven-plugin to filter all maven dependencies when obfuscating code?混淆代码时如何使用proguard-maven-plugin过滤所有maven依赖?
【发布时间】:2020-03-14 09:50:49
【问题描述】:

我在maven的pom.xml中写了需要的maven依赖,现在加proguard-maven-plugin混淆代码,希望不要混淆pom.xml中写的依赖

该项目依赖于很多 maven jars。有没有直接过滤所有maven jar的配置方法?

如何修改 pom.xml 或 proguard.cfg?


我的 pom.xml 的一部分

依赖:

<dependencies>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>${spring-data-redis-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>${commons-pool2-version}</version>
        </dependency>
</dependencies>

插件:

                <plugin>
                    <dependencies>
                        <dependency>
                            <groupId>net.sf.proguard</groupId>
                            <artifactId>proguard-base</artifactId>
                            <version>6.0.2</version>
                            <scope>runtime</scope>
                        </dependency>
                    </dependencies>
                    <groupId>com.github.wvengen</groupId>
                    <artifactId>proguard-maven-plugin</artifactId>
                    <version>2.0.14</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>proguard</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <attach>true</attach>
                        <attachArtifactClassifier>pg</attachArtifactClassifier>
                        <injar>original-${project.build.finalName}.jar</injar>
                        <outjar>original-${project.build.finalName}-pg.jar</outjar>
                        <obfuscate>true</obfuscate>
                        <proguardInclude>../proguard.cfg</proguardInclude>
                    </configuration>
                </plugin>

混淆代码时如何过滤这两个依赖项?

【问题讨论】:

    标签: java maven proguard


    【解决方案1】:

    我终于在配置文件中添加了如下参数解决了问题

    -keep interface !com.kdgz.monitor.** {*;}
    -keep class !com.kdgz.monitor.** {*;}
    

    我不知道这是否是标准解决方案,但它确实解决了我的问题。 还有一些其他的小问题。看不懂方法原理,但是能解决问题。

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 2011-05-29
      • 1970-01-01
      • 2023-03-24
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      相关资源
      最近更新 更多