1.业务需求
公司有块核心代码不希望给别人抄袭,但系统是用java开发的,无法避免被反编译的情况,于是想到了用代码混淆的方式来解决。
2.调查
调查了一下主流的第三方混淆工具,发现只有ProGuard用的最多,而且版本一直在更新维护,功能也比较多,所以打算用这个来混淆。
3.下载了proguard6.2.2这个版本,解压缩后执行proguard6.2.2jpdxgproguardgui.bat这个文件就可以打开软件,标红框的地方是需要特别设置的,其他地方都可以默认
4.设置Input/Output,“Add input”就是选择你要混淆的jar文件,“Add output”就是混淆后的文件保存的路径和名字,下面那个“Add”就是把你这个工程所有用到的依赖全部加进来,如何知道你的工程用到哪些依赖?请看下一步
5.设置maven工程,在pom.xml文件里加上这一段配置,可以把所有用到的依赖导出到指定目录里。Maven install后,会在targetlib目录下导出所有的依赖,把这些jar包加入到第4步的“Add”中,注意java的依赖还是需要你到Javajdk1.8.0_152jrelib目录里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就说明成功了