Как использовать proguard-maven-plugin для фильтрации всех maven-зависимостей при запутывании кода? - PullRequest
0 голосов
/ 14 марта 2020

Я написал необходимые зависимости maven в pom maven. xml, а теперь добавляю proguard-maven-plugin, чтобы запутать код, и надеюсь не запутывать зависимости, написанные в pom. xml

Проект зависит от множества банок maven. Есть ли способ конфигурации для прямой фильтрации всех банок maven?

Как мне изменить 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>

Как мне отфильтровать эти две зависимости при запутывании кода?

1 Ответ

0 голосов
/ 30 марта 2020

Я наконец добавил следующие параметры в файл конфигурации, чтобы решить проблему

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

Я не знаю, является ли это стандартным решением, но оно действительно решило мою проблему. Есть и другие мелкие проблемы. Я не понимаю принцип метода, который искал, но он может решить проблему.

...