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

发布于:2024-04-30 ⋅ 阅读:(60) ⋅ 点赞:(0)

文章目录

概要

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

整体流程

  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

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


网站公告

今日签到

点亮在社区的每一天
去签到