混淆代码时如何使用proguard-maven-plugin过滤所有maven依赖?

How to use proguard-maven-plugin to filter all maven dependencies when obfuscating code?

我在maven的pom.xml里写了需要的maven依赖,现在加上proguard-maven-plugin来混淆代码,希望不要混淆pom.xml[=12里写的依赖=]

该项目依赖于很多maven jar。有没有直接过滤所有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>

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

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

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

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