首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当混淆代码时,如何使用proguard plugin过滤所有maven依赖项?

当混淆代码时,如何使用proguard plugin过滤所有maven依赖项?
EN

Stack Overflow用户
提问于 2020-03-14 09:50:49
回答 1查看 307关注 0票数 0

我在maven的pom.xml中编写了所需的maven依赖项,现在我添加了proguard-maven-plugin来混淆代码,并希望不要混淆用pom.xml编写的依赖项。

这个项目依赖于大量的maven jars。是否有一种直接过滤所有maven jars的配置方法?

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

我的pom.xml的一部分

依赖关系:

代码语言:javascript
复制
<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>

插件:

代码语言:javascript
复制
                <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>

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-30 01:21:19

最后,我将以下参数添加到配置文件中以解决这个问题

代码语言:javascript
复制
-keep interface !com.kdgz.monitor.** {*;}
-keep class !com.kdgz.monitor.** {*;}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60681508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档