引入classfinal maven 插件实现对jar包的加密

embedded/2024/9/23 10:23:21/

文章目录

    • 概要
    • 整体流程

概要

我使用的项目为微服务项目

整体流程

  1. 明确所有需要加密的jar包:
    可以通过maven的package指令,查看日志,后缀为jar的即为所有需要加密的jar包。

  2. 在跟pom文件的properties属性中定义classfinal maven插件的属性值

        <!--classfinal插件版本--><classfinal.version>1.2.1</classfinal.version><!--要加密jar文件名(可为空,多个用","分割)--><classfinal.libjars>fscloud-common-core-2.5.0.jar,fscloud-api-system-2.5.0.jar,fscloud-common-redis-2.5.0.jar,fscloud-common-security-2.5.0.jar,fscloud-auth-2.5.0.jar,fscloud-gateway-2.5.0.jar,fscloud-visual-monitor-2.5.0.jar,fscloud-common-datasource-2.5.0.jar,fscloud-common-datascope-2.5.0.jar,fscloud-common-log-2.5.0.jar,fscloud-common-swagger-2.5.0.jar,fscloud-modules-system-2.5.0.jar,fscloud-modules-gen-2.5.0.jar,fscloud-modules-job-2.5.0.jar,fscloud-modules-file-2.5.0.jar,fscloud-news-2.5.0.jar,fscloud-fservices-2.5.0.jar</classfinal.libjars><!--加密密码,如果是#号,则使用无密码模式加密--><classfinal.password>1234</classfinal.password><!--需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)--><classfinal.cfgfiles> </classfinal.cfgfiles><!--加密的包名(可为空,多个用","分割)--><classfinal.packages>com.fscloud</classfinal.packages><!--排除的类名(可为空,多个用","分割)--><classfinal.excludes>org.spring</classfinal.excludes>
  1. 在各个需要加密的服务的pom文件中引入classfinal maven 插件,放在plugins标签里面
     <plugin><!-- https://gitee.com/roseboy/classfinal --><groupId>net.roseboy</groupId><artifactId>classfinal-maven-plugin</artifactId><version>${classfinal.version}</version><configuration><password>${classfinal.password}</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码--><packages>${classfinal.packages}</packages><cfgfiles>${classfinal.cfgfiles}</cfgfiles><excludes>${classfinal.excludes}</excludes><libjars>${classfinal.libjars}</libjars></configuration><executions><execution><phase>package</phase><goals><goal>classFinal</goal></goals></execution></executions></plugin>
  1. 引入完成后,直接使用maven的package指令进行打包,加密的jar包为 ***-encrypted.jar 格式。
  2. 启动
java -javaagent:yourpaoject-encrypted.jar="-pwd 1234" -jar yourpaoject-encrypted.jar//参数说明
// -pwd      加密项目的密码  
// -pwdname  环境变量中密码的名字// 也可以使用下面的方式,在控制台输入密码启动
java -javaagent:yourpaoject-encrypted.jar -jar yourpaoject-encrypted.jar

注意:引号为双引号,如果写成了单引号会导致启动失败


http://www.ppmy.cn/embedded/28250.html

相关文章

记录浏览器打开网站拦截提示不安全解决方法

浏览器可能会因为多种原因显示“不安全”的警告,这通常是由于安全设置不当或配置错误造成的。以下是一些常见的原因和解决方法: 1. HTTPS未启用 原因:如果网站使用HTTP而不是HTTPS,浏览器可能会显示不安全的警告。 解决方法:配置SSL/TLS证书并使用HTTPS来加密数据传输…

OpenHarmony实战开发-如何实现单一手势

点击手势&#xff08;TapGesture&#xff09; TapGesture(value?:{count?:number; fingers?:number})点击手势支持单次点击和多次点击&#xff0c;拥有两个可选参数&#xff1a; count&#xff1a;声明该点击手势识别的连续点击次数。默认值为1&#xff0c;若设置小于1的非…

中国发布首个汽车大模型标准

&#x1f989; AI新闻 &#x1f680; 中国发布首个汽车大模型标准 摘要&#xff1a;中国信息通信研究院于4月28日发布了国内首个汽车大模型标准&#xff0c;标志着汽车行业正式迈向“人工智能&#xff0b;”时代。该标准包含三个核心能力域&#xff1a;场景丰富度、能力支持度…

AtCoder Beginner Contest 351(补题A~F)

文章目录 A - The bottom of the ninth思路&#xff1a;代码&#xff1a; B - Spot the Difference思路&#xff1a;代码&#xff1a; C - Merge the balls思路&#xff1a;代码&#xff1a; D - Grid and Magnet思路&#xff1a; E - Jump Distance Sum思路&#xff1a;代码&a…

Spark-机器学习(7)分类学习之决策树

在之前的文章中&#xff0c;我们学习了分类学习之支持向量机&#xff0c;并带来简单案例&#xff0c;学习用法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。…

jvm面试题30问

什么是JVM的跨平台&#xff1f; 什么是JVM的语言无关性&#xff1f; 什么是JVM的解释执行 什么是JIT? JIT&#xff1a;在Java编程语言和环境中&#xff0c;即时编译器&#xff08;JIT compiler&#xff0c;just-in-time compiler&#xff09;是一个把Java的字节码&#xff08;…

JVM对象锁的升级过程

在Java中&#xff0c;锁升级是一个动态过程&#xff0c;JVM根据运行时的线程竞争情况自动调整锁的状态。这个过程涵盖从偏向锁到轻量级锁&#xff0c;最后可能升级到重量级锁。下面详细解释每个步骤以及它们之间的转换机制。 1. 偏向锁 偏向锁是一种针对单线程执行代码块的优…

Java基础,每日两问(5.1.2)

Java8有哪些新特性&#xff1a; Lambda 表达式&#xff1a;Lambda 表达式允许在代码中直接定义匿名函数&#xff0c;简化了对函数式编程的支持。Lambda 表达式使用箭头操作符 -> 将参数和函数体分开&#xff0c;使得代码更加简洁和灵活。Stream API&#xff1a;Stream API …