Java源码加密实战:Maven插件和Classloader

张开发
2026/4/9 4:22:44 15 分钟阅读

分享文章

Java源码加密实战:Maven插件和Classloader
痛点最近在自己搞了一个网站,有私有化部署的需求。这就需要对源码进行加密。经历了GraalVM,Classfinal,自定义ClassLoader,Java Agent,Maven打包加密,JNI,以及修改Spring的扫描加载。都没有成功,现在就记录一下坑。方案描述Maven插件是在package过程中直接给class文件加密,即mvn clean package过程中完成加密。而ClassFinal是给packge过程后给生成的jar加密一次。Maven插件加密(编译期): 源代码 → 编译(.class) → 立即加密 → 打包成JAR ClassFinal加密(打包后): 源代码 → 编译(.class) → 打包成JAR → 对JAR内的.class加密Maven跟ClassFinal对比维度Maven插件加密ClassFinal加密加密时机process-classes阶段JAR 生成之后

更多文章