1.业务需求
公司有块核心代码不希望给别人抄袭,但系统是用java开发的,无法避免被反编译的情况,于是想到了用代码混淆的方式来解决。
2.调查
调查了一下主流的第三方混淆工具,发现只有ProGuard用的最多,而且版本一直在更新维护,功能也比较多,所以打算用这个来混淆。
3.下载了proguard6.2.2这个版本,解压缩后执行proguard6.2.2\bin\proguardgui.bat这个文件就可以打开软件,标红框的地方是需要特别设置的,其他地方都可以默认
4.设置Input/Output,“Add input”就是选择你要混淆的jar文件,“Add output”就是混淆后的文件保存的路径和名字,下面那个“Add”就是把你这个工程所有用到的依赖全部加进来,如何知道你的工程用到哪些依赖?请看下一步
5.设置maven工程,在pom.xml文件里加上这一段配置,可以把所有用到的依赖导出到指定目录里。Maven install后,会在target\lib目录下导出所有的依赖,把这些jar包加入到第4步的“Add”中,注意java的依赖还是需要你到Java\jdk1.8.0_152\jre\lib目录里Add进来
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
6.选择Information设置java的版本
7.然后一路next,最后按Process进行混淆,看到Processing completed successfully就说明成功了