proguard-maven-plugin 配置

<plugin>
                <groupId>com.github.wvengen</groupId>
                <artifactId>proguard-maven-plugin</artifactId>
                <version>2.0.11</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>proguard</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>

                    <attach>true</attach>
                    <attachArtifactClassifier>proguard</attachArtifactClassifier>
                    <!-- attach 的作用是在 install 与 deploy 时将生成的 pg 文件也安装与部署 -->
                    <options> <!-- 详细配置方式参考 ProGuard 官方文档 -->
                        <!--<option>-dontobfuscate</option>-->
                        <option>-ignorewarnings</option> <!--忽略所有告警-->
                        <option>-dontshrink</option>   <!--不做 shrink -->
                        <option>-dontoptimize</option> <!--不做 optimize -->
                        <option>-dontskipnonpubliclibraryclasses</option>
                        <option>-dontskipnonpubliclibraryclassmembers</option>

                        <!--不要重构包名
                      <option>-repackageclasses org.noahx.proguard.example.project2.pg</option>
                      -->
                        <!--平行包结构(重构包层次),所有混淆的类放在 pg 包下-->

                        <!--保护程序入口-->
                        <!--<option>-keep public class com.yunshouhu.apkprotect.MainHelper { public static void main(java.lang.String[]);}</option>-->
                        <!-- 以下为 Keep,哪些内容保持不变,因为有一些内容混淆后(a,b,c)导致反射或按类名字符串相关的操作失效 -->
                        <option>-keep class **.consolemodel.**</option>
                        <option>-keep class **.service.**</option>
                        <!--保持包注解类-->
                        <option>-keepattributes Signature</option>
                        <!--JAXB NEED,具体原因不明,不加会导致 JAXB 出异常,如果不使用 JAXB 根据需要修改-->
                        <!-- Jaxb requires generics to be available to perform xml parsing and without this option ProGuard was not retaining that information after obfuscation. That was causing the exception above. -->
                        <option>-keepattributes SourceFile,LineNumberTable,*Annotation*</option>
                        <!--保持源码名与行号(异常时有明确的栈信息),注解(默认会过滤掉所有注解,会影响框架的注解)-->
                        <!--<option>-keepclassmembers enum org.noahx.proguard.example.project2.** { *;}</option>-->
                        <!--保持枚举中的名子,确保枚举 valueOf 可以使用-->
                        <!--<option>-keep class org.noahx.proguard.example.project2.bean.** { *;}</option>-->
                        <!--保持 Bean 类,(由于很多框架会对 Bean 中的内容做反射处理,请根据自己的业务调整) -->
                        <!--<option>-keep class org.noahx.proguard.example.project2.Project2 { public void init(); public void  destroy(); }</option>-->
                        <!-- 保持对外的接口性质类对外的类名与方法名不变 -->
                    </options>
                    <!--<outjar>${project.build.finalName}-proguard</outjar>-->
                    <outjar>${project.build}-proguard</outjar>
                    <libs>
                        <lib>${java.home}/lib/rt.jar</lib>
                    </libs>

                </configuration>
            </plugin>

猜你喜欢

转载自blog.csdn.net/hety119/article/details/84880338
今日推荐