proguard.version 6.2
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>net.zjhz</groupId>
<artifactId>zjclass</artifactId>
<version>1.2.2</version>
</parent>
<artifactId>zjclass-core</artifactId>
<packaging>jar</packaging>
<name>zjclass-core</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<proguard.version>6.2.0</proguard.version>
<proguard.maven.plugin.version>2.2.0</proguard.maven.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.25.0-GA</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--代码混淆-->
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>${proguard.maven.plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>${proguard.version}</proguardVersion>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}.jar</outjar>
<obfuscate>true</obfuscate>
<options>
<option>-dontshrink</option>
<option>-dontoptimize</option>
<!-- This option will replace all strings in reflections method invocations with new class names.
For example, invokes Class.forName('className')-->
<option>-adaptclassstrings</option>
<!-- This option will save all original annotations and etc. Otherwise all we be removed from files.-->
<option>-keepattributes
Exceptions,
InnerClasses,
Signature,
Deprecated,
SourceFile,
LineNumberTable,
*Annotation*,
EnclosingMethod
</option>
<!-- This option will save all original names in interfaces (without obfuscate).-->
<option>-keepnames interface **</option>
<!-- This option will save all original methods parameters in files defined in -keep sections,
otherwise all parameter names will be obfuscate.-->
<option>-keepparameternames</option>
<!-- This option will save all original class files (without obfuscate) but obfuscate all
in domain and service packages.-->
<!-- <option>-keep
class net.zjhz.zjclass.Main {
public static void main(java.lang.String[]);
}
</option>-->
<option>-keepclassmembers class * {
public static *;
@org.springframework.beans.factory.annotation.Value *;
}
</option>
<option>-keep
class net.zjhz.zjclass.CoreAgent {
public static void premain();
}
</option>
<option>-keep
class net.zjhz.zjclass.Const
</option>
<option>-keep
class net.zjhz.zjclass.util.CmdLineOption{
public static void pringInfo();
}
</option>
<option>-keep
class net.zjhz.zjclass.Main
</option>
<option>-keep
class net.zjhz.zjclass.util.Log
</option>
<option>-keep
class net.zjhz.zjclass.util.IoUtils
</option>
<option>-keep
class net.zjhz.zjclass.util.JarUtils
</option>
<option>-keep
class net.zjhz.zjclass.util.StrUtils
</option>
<option>-keep
class net.zjhz.zjclass.util.Log
</option>
<option>-keep
class net.zjhz.zjclass.JarEncryptor
</option>
<!-- This option ignore warnings such as duplicate class definitions and classes in incorrectly
named files-->
<option>-ignorewarnings</option>
<!-- This option will save all original class files (without obfuscate) in service package-->
<!--<option>-keep class com.slm.proguard.example.spring.boot.service { *; }</option>-->
<!-- This option will save all original interfaces files (without obfuscate) in all packages.-->
<option>-keep interface * extends * { *; }</option>
<!-- This option will save all original defined annotations in all class in all packages.-->
<option>-keepclassmembers class * {
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Value *;
}
</option>
</options>
<injarNotExistsSkip>true</injarNotExistsSkip>
<libs>
<!--Put here your libraries if required-->
<!--<lib>${java.home}/lib/rt.jar</lib>-->
</libs>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>${proguard.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Releases Repository</name>
<url>http://192.168.0.114:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>cn.ucmed-Snapshots</id>
<name>UCMED Snapshots Repository</name>
<url>http://192.168.0.114:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>