【学習ノート】proguardによるJAVAコード混同(MavenベースSpringBootエンジニアリング)
5381 ワード
今日1024、1篇の前の記録を整理して、10241024 K=1 GB(一級棒)を記念します.
会社が入庫バージョンのコードを混同する必要があると要求したため、この無意味な作業を行い、多角的に調査した結果、混同に成功した.次にpoguardをmavenプロジェクトに埋め込み、パッケージ化する方法を紹介します.
メソッドを使用して、proguard.cfgファイルをpomファイルの兄弟ディレクトリの下に配置し、pomファイルで構成してパッケージ化します.
ピット回避ガイド:pomファイルのpoguard混同構成は必ずcompolierコンパイルモジュールの前にしなければならない.そうしないと、混同後のコードは逃げられない.
1.混同構成:poguard.cfg構成ファイル
2.pomファイル構成、場所:pluginsモジュールの下に最初に配置
3.mavenパッケージ
mavenツールをパッケージ化すると、コンソールから[poguard]という混同プロセスが出力され、targetフォルダの下でjarパッケージがパッケージ完了後のパッケージであることがわかります.
注意点:
パッケージ・プロンプトにプライマリ・クラスがない場合はpomファイルに構成を追加します.
会社が入庫バージョンのコードを混同する必要があると要求したため、この無意味な作業を行い、多角的に調査した結果、混同に成功した.次にpoguardをmavenプロジェクトに埋め込み、パッケージ化する方法を紹介します.
メソッドを使用して、proguard.cfgファイルをpomファイルの兄弟ディレクトリの下に配置し、pomファイルで構成してパッケージ化します.
ピット回避ガイド:pomファイルのpoguard混同構成は必ずcompolierコンパイルモジュールの前にしなければならない.そうしないと、混同後のコードは逃げられない.
1.混同構成:poguard.cfg構成ファイル
-target 1.8 ## java
-ignorewarnings ## ,
-keepdirectories
-dontwarn ##
-dontshrink ## , shrink, /
-dontoptimize ## ,
-useuniqueclassmembernames ##
-adaptclassstrings ## , Class.forName('className')
-dontusemixedcaseclassnames ## ,
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-allowaccessmodification
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod ## 、 runtime , springboot
-keeppackagenames
-adaptclassstrings
-keepparameternames
-keepclassmembers class * {@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Value *;
@org.springframework.context.annotation.ComponentScan *;
@org.mybatis.spring.annotation.MapperScan *;}
-keep class !com.xxx.xxx.demo.** { *; }
-keep class com.xxx.xxx.demo.DemoApplication { *; }
-keepclassmembers public class * {void set*(***);*** get*();}
-keepclassmembers enum * { *; } ##
#
-keep class com.xxx.xxx.demo.controller.**
-keep class com.xxx.xxx.demo.config.**
-keep class com.xxx.xxx.demo.manager.**
-keep class com.xxx.xxx.demo.mq.**
#
-keep class com.xxx.xxx.demo.dao.** {*;}
-keep class com.xxx.xxx.demo.exception.** {*;}
-keep class com.xxx.xxx.demo.handler.** {*;}
-keep class com.xxx.xxx.demo.model.** {*;}
-keep class com.xxx.xxx.demo.service.** {*;}
-keep class com.xxx.xxx.demo.util.** {*;}
2.pomファイル構成、場所:pluginsモジュールの下に最初に配置
com.github.wvengen
proguard-maven-plugin
package
proguard
6.1.0
${project.build.finalName}.jar
${project.build.finalName}.jar
true
${project.basedir}/proguard.cfg
${java.home}/lib/rt.jar
${java.home}/lib/jce.jar
net.sf.proguard
proguard-base
6.1.0
.....
org.apache.maven.plugins
maven-compiler-plugin
3.3
1.8
1.8
UTF-8
-parameters
3.mavenパッケージ
mavenツールをパッケージ化すると、コンソールから[poguard]という混同プロセスが出力され、targetフォルダの下でjarパッケージがパッケージ完了後のパッケージであることがわかります.
注意点:
パッケージ・プロンプトにプライマリ・クラスがない場合はpomファイルに構成を追加します.
org.springframework.boot
spring-boot-maven-plugin
1.8
1.8
com.xxx.demo.DemoApplication
true
jar/
true
repackage