maven中添加proguard来混淆代码

一步步教你使用Proguard混淆Java源代码 http://java-server.iteye.com/blog/1166114

直接使用mvn package可能直接出错,所以先用jar:jar命令得到jar文件,在使用proguard:proguard混淆。
命令在idea的Maven Projects查看。

参考:http://zhengchao123.iteye.com/blog/1872424
com.pyx4me=>com.github.wvengen,版本号要变成2.0.7

proguard.conf
# ———————————-
#  通过指定数量的优化能执行
#  -optimizationpasses n
# ———————————-
-optimizationpasses 3

# ———————————-
#   混淆时不会产生形形色色的类名
#   -dontusemixedcaseclassnames
# ———————————-
-dontusemixedcaseclassnames
# ———————————-
#      指定不去忽略非公共的库类
#  -dontskipnonpubliclibraryclasses
# ———————————-
#-dontskipnonpubliclibraryclasses

# ———————————-
#       不预校验
#    -dontpreverify
# ———————————-
# -dontpreverify

# ———————————-
#      输出生成信息
#       -verbose
# ———————————-
-verbose

#混淆时应用侵入式重载
-overloadaggressively

#优化时允许访问并修改有修饰符的类和类的成员
-allowaccessmodification
#确定统一的混淆类的成员名称来增加混淆
-useuniqueclassmembernames

#这里添加你不需要混淆的类
-dontwarn javax.crypto.**
-keep class javax.crypto.**
-keep  class com.rh.hasp.util.** {*;}
#-keep  class com.zsoftware.common.constant.** {*;}

-keep public class * extends  javax.servlet.Servlet

-keepdirectories  **
-keepattributes **

#-keepnames class * implements java.io.Serializable
# ———保护所有实体中的字段名称———-
-keepclassmembers class * implements java.io.Serializable {
<fields>;
}

# ——— 保护类中的所有方法名 ————
-keepclassmembers class * {
public <methods>;
}

执行:mvn package
输出:
[INFO]
[INFO] — maven-jar-plugin:2.3.2:jar (default-jar) @ rh-hasp —
[INFO] Building jar: /mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1.jar
[INFO]
[INFO] — proguard-maven-plugin:2.0.6:proguard (default) @ rh-hasp —
[INFO] execute ProGuard [-injars, ‘/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1_proguard_base.jar'(!META-INF/maven/**), -outjars, ‘/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1.jar’, -include, ‘/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/proguard.conf’, -libraryjars, ‘/home/pandy/m2/repository/commons-codec/commons-codec/1.9/commons-codec-1.9.jar’, -libraryjars, ‘/home/pandy/m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar’, -libraryjars, ‘/usr/java/jdk1.7.0_51/jre/lib/rt.jar’, -printmapping, ‘/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/proguard_map.txt’, -printseeds, ‘/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/proguard_seeds.txt’]
[INFO] proguard jar: /home/pandy/m2/repository/net/sf/proguard/proguard-base/4.9/proguard-base-4.9.jar
[proguard] ProGuard, version 4.9
[proguard] Reading input…
[proguard] Reading program jar [/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1_proguard_base.jar] (filtered)
[proguard] Reading library jar [/home/pandy/m2/repository/commons-codec/commons-codec/1.9/commons-codec-1.9.jar]
[proguard] Reading library jar [/home/pandy/m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar]
[proguard] Reading library jar [/usr/java/jdk1.7.0_51/jre/lib/rt.jar]
[proguard] Initializing…
[proguard] Note: the configuration refers to the unknown class ‘javax.servlet.Servlet’
[proguard] Note: there were 1 references to unknown classes.
[proguard]       You should check your configuration for typos.
[proguard] Ignoring unused library classes…
[proguard]   Original number of library classes: 19278
[proguard]   Final number of library classes:    19278
[proguard] Printing kept classes, fields, and methods…
[proguard] Shrinking…
[proguard] Removing unused program classes and class elements…
[proguard]   Original number of program classes: 8
[proguard]   Final number of program classes:    8
[proguard] Inlining subroutines…
[proguard] Optimizing…
[proguard]   Number of finalized classes:                 5
[proguard]   Number of vertically merged classes:         0
[proguard]   Number of horizontally merged classes:       0
[proguard]   Number of removed write-only fields:         3
[proguard]   Number of privatized fields:                 12
[proguard]   Number of inlined constant fields:           0
[proguard]   Number of privatized methods:                0
[proguard]   Number of staticized methods:                1
[proguard]   Number of finalized methods:                 45
[proguard]   Number of removed method parameters:         0
[proguard]   Number of inlined constant parameters:       2
[proguard]   Number of inlined constant return values:    0
[proguard]   Number of inlined short method calls:        0
[proguard]   Number of inlined unique method calls:       13
[proguard]   Number of inlined tail recursion calls:      0
[proguard]   Number of merged code blocks:                2
[proguard]   Number of variable peephole optimizations:   72
[proguard]   Number of arithmetic peephole optimizations: 0
[proguard]   Number of cast peephole optimizations:       0
[proguard]   Number of field peephole optimizations:      1
[proguard]   Number of branch peephole optimizations:     36
[proguard]   Number of string peephole optimizations:     11
[proguard]   Number of simplified instructions:           3
[proguard]   Number of removed instructions:              33
[proguard]   Number of removed local variables:           2
[proguard]   Number of removed exception blocks:          3
[proguard]   Number of optimized local variable frames:   25
[proguard] Shrinking…
[proguard] Removing unused program classes and class elements…
[proguard]   Original number of program classes: 8
[proguard]   Final number of program classes:    8
[proguard] Optimizing…
[proguard]   Number of finalized classes:                 0
[proguard]   Number of vertically merged classes:         0
[proguard]   Number of horizontally merged classes:       0
[proguard]   Number of removed write-only fields:         0
[proguard]   Number of privatized fields:                 0
[proguard]   Number of inlined constant fields:           0
[proguard]   Number of privatized methods:                0
[proguard]   Number of staticized methods:                0
[proguard]   Number of finalized methods:                 0
[proguard]   Number of removed method parameters:         1
[proguard]   Number of inlined constant parameters:       0
[proguard]   Number of inlined constant return values:    0
[proguard]   Number of inlined short method calls:        0
[proguard]   Number of inlined unique method calls:       0
[proguard]   Number of inlined tail recursion calls:      0
[proguard]   Number of merged code blocks:                0
[proguard]   Number of variable peephole optimizations:   4
[proguard]   Number of arithmetic peephole optimizations: 0
[proguard]   Number of cast peephole optimizations:       0
[proguard]   Number of field peephole optimizations:      0
[proguard]   Number of branch peephole optimizations:     1
[proguard]   Number of string peephole optimizations:     2
[proguard]   Number of simplified instructions:           0
[proguard]   Number of removed instructions:              50
[proguard]   Number of removed local variables:           1
[proguard]   Number of removed exception blocks:          0
[proguard]   Number of optimized local variable frames:   1
[proguard] Shrinking…
[proguard] Removing unused program classes and class elements…
[proguard]   Original number of program classes: 8
[proguard]   Final number of program classes:    8
[proguard] Optimizing…
[proguard]   Number of finalized classes:                 0
[proguard]   Number of vertically merged classes:         0
[proguard]   Number of horizontally merged classes:       0
[proguard]   Number of removed write-only fields:         0
[proguard]   Number of privatized fields:                 0
[proguard]   Number of inlined constant fields:           0
[proguard]   Number of privatized methods:                0
[proguard]   Number of staticized methods:                0
[proguard]   Number of finalized methods:                 0
[proguard]   Number of removed method parameters:         0
[proguard]   Number of inlined constant parameters:       0
[proguard]   Number of inlined constant return values:    0
[proguard]   Number of inlined short method calls:        0
[proguard]   Number of inlined unique method calls:       0
[proguard]   Number of inlined tail recursion calls:      0
[proguard]   Number of merged code blocks:                0
[proguard]   Number of variable peephole optimizations:   0
[proguard]   Number of arithmetic peephole optimizations: 0
[proguard]   Number of cast peephole optimizations:       0
[proguard]   Number of field peephole optimizations:      0
[proguard]   Number of branch peephole optimizations:     0
[proguard]   Number of string peephole optimizations:     2
[proguard]   Number of simplified instructions:           0
[proguard]   Number of removed instructions:              6
[proguard]   Number of removed local variables:           0
[proguard]   Number of removed exception blocks:          0
[proguard]   Number of optimized local variable frames:   0
[proguard] Shrinking…
[proguard] Removing unused program classes and class elements…
[proguard]   Original number of program classes: 8
[proguard]   Final number of program classes:    8
[proguard] Obfuscating…
[proguard] Printing mapping to [/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/proguard_map.txt]…
[proguard] Preverifying…
[proguard] Writing output…
[proguard] Preparing output jar [/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1.jar]
[proguard]   Copying resources from program jar [/mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1_proguard_base.jar] (filtered)
[INFO]
[INFO] — maven-jar-plugin:2.3.2:jar (default) @ rh-hasp —
[INFO] Building jar: /mnt/D/work_documents/workspace_ide_linux/rh_hasp_util/target/rh-hasp-1.1-lib.jar
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
这时就已经好了,但是包结构都变了,成了a,b,c,d ….的了
虽然是混淆加密了,但是外部也不能再直接使用类来…地去引用了