Browse Source

解密时增加decryptProjectPathPrefix参数

JustryDeng 3 years ago
parent
commit
2418aa1f6a
20 changed files with 107 additions and 51 deletions
  1. 30 19
      README.md
  2. 1 1
      class-winter-core/pom.xml
  3. 24 0
      class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/Reverses.java
  4. 21 0
      class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/util/JavaagentCmdArgs.java
  5. 1 1
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/AllTest.java
  6. 2 2
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/AlreadyProtectedLibs_Test.java
  7. 2 2
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Debug_Test.java
  8. 2 2
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/ExcludePrefix_Test.java
  9. 1 1
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/FinalName_Test.java
  10. 1 1
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/IncludeLibs_Test.java
  11. 1 1
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/IncludePrefix_Test.java
  12. 3 3
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/JvmArgCheck_Test.java
  13. 2 2
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/OriginJarOrWar_Test.java
  14. 3 3
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Password_Test.java
  15. 2 2
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/SupportFile_Test.java
  16. 3 3
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Tips_Test.java
  17. 5 5
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/War_Test.java
  18. 1 1
      class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Xml_Test.java
  19. 1 1
      class-winter-maven-plugin/pom.xml
  20. 1 1
      pom.xml

+ 30 - 19
README.md

@@ -32,7 +32,7 @@
   <plugin>
       <groupId>com.idea-aedi</groupId>
       <artifactId>class-winter-maven-plugin</artifactId>
-      <version>2.6.4</version>
+      <version>2.6.5</version>
       <!-- 相关配置 -->
       <configuration>
           <!-- <finalName></finalName>-->
@@ -61,15 +61,15 @@
   ```
   注:不必担心信息泄漏问题,使用此方式生成混淆的jar包时,会擦除pom.xml中关于class-winter-plugin的信息。
   
-- #### <font face="幼圆" ><font face="幼圆"  color = "#86CA5E">**方式二**</font>:通过 [**class-winter-core.jar**](https://gitee.com/JustryDeng/class-winter/raw/master/class-winter-core/src/test/resources/class-winter-core-2.6.4.jar) 主动加密。</font>
+- #### <font face="幼圆" ><font face="幼圆"  color = "#86CA5E">**方式二**</font>:通过 [**class-winter-core.jar**](https://gitee.com/JustryDeng/class-winter/raw/master/class-winter-core/src/test/resources/class-winter-core-2.6.5.jar) 主动加密。</font>
 
   ```bash
-  java -jar class-winter-core-2.6.4.jar originJarOrWar=${要加密的项目.jar或.war包} includePrefix=${加密范围} [k3=v3 k4=v4 ...]
+  java -jar class-winter-core-2.6.5.jar originJarOrWar=${要加密的项目.jar或.war包} includePrefix=${加密范围} [k3=v3 k4=v4 ...]
   # 对于复杂的参数值,可以使用引号引起来
   # linux
-  java -jar class-winter-core-2.6.4.jar k1='v1' k2='v2'
+  java -jar class-winter-core-2.6.5.jar k1='v1' k2='v2'
   # windows
-  java -jar class-winter-core-2.6.4.jar k1="v1" k2="v2"
+  java -jar class-winter-core-2.6.5.jar k1="v1" k2="v2"
   ```
 
 ## <font  face="幼圆" color = "#3399EA" >加密参数</font>
@@ -239,8 +239,8 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
   ```bash
   # 假设your-project-encrypted.jar是由class-winter加密后的包,那么你可以这么启动
   java -javaagent:/your-project-encrypted.jar -jar /your-project-encrypted.jar
-  # 也可以用class-winter-core-2.6.4.jar
-  # java -javaagent:/class-winter-core-2.6.4.jar -jar /your-project-encrypted.jar
+  # 也可以用class-winter-core-2.6.5.jar
+  # java -javaagent:/class-winter-core-2.6.5.jar -jar /your-project-encrypted.jar
   # 或者指定参数
   # java -javaagent:/your-project-encrypted.jar=debug=true,password=pwd12345 -jar /your-project-encrypted.jar
   # 参数可以引起来(linux)
@@ -256,8 +256,8 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
     编辑tomcat/bin/catalina.sh文件,在最上面加上
 
     ```bash
-    # 如果你有参数, 那么 -javaagent:/class-winter-core-2.6.4.jar=k1=v1,k2=v2
-    CATALINA_OPTS="$CATALINA_OPTS -javaagent:/class-winter-core-2.6.4.jar=debug=true";
+    # 如果你有参数, 那么 -javaagent:/class-winter-core-2.6.5.jar=k1=v1,k2=v2
+    CATALINA_OPTS="$CATALINA_OPTS -javaagent:/class-winter-core-2.6.5.jar=debug=true";
     export CATALINA_OPTS;
     ```
 
@@ -266,8 +266,8 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
     在tomcat/bin目录下创建setenv.sh文件,并写上
 
     ```bash
-    # 如果你有参数, 那么 -javaagent:/class-winter-core-2.6.4.jar=k1=v1,k2=v2
-    JAVA_OPTS="$JAVA_OPTS -javaagent:/class-winter-core-2.6.4.jar=debug=true";
+    # 如果你有参数, 那么 -javaagent:/class-winter-core-2.6.5.jar=k1=v1,k2=v2
+    JAVA_OPTS="$JAVA_OPTS -javaagent:/class-winter-core-2.6.5.jar=debug=true";
     export JAVA_OPTS;
     ```
 
@@ -276,8 +276,8 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
     编辑tomcat/bin/catalina.bat文件,在@echo off后加上catalina参数
 
     ```bash
-    rem 如果你有参数, 那么 -javaagent:D:/class-winter-core-2.6.4.jar=k1=v1,k2=v2
-    set CATALINA_OPTS="-javaagent:D:/class-winter-core-2.6.4.jar"
+    rem 如果你有参数, 那么 -javaagent:D:/class-winter-core-2.6.5.jar=k1=v1,k2=v2
+    set CATALINA_OPTS="-javaagent:D:/class-winter-core-2.6.5.jar"
     ```
 
   - windows方式二
@@ -285,8 +285,8 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
     在tomcat/bin目录下创建setenv.bat文件,并写上
 
     ```bash
-    rem 如果你有参数, 那么 -javaagent:D:/class-winter-core-2.6.4.jar=k1=v1,k2=v2
-    set JAVA_OPTS="-javaagent:D:/class-winter-core-2.6.4.jar"
+    rem 如果你有参数, 那么 -javaagent:D:/class-winter-core-2.6.5.jar=k1=v1,k2=v2
+    set JAVA_OPTS="-javaagent:D:/class-winter-core-2.6.5.jar"
     ```
 
 ## <font  face="幼圆" color = "#3399EA" >解密参数</font>
@@ -307,24 +307,34 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
   <tr align="center">
     <td>passwordFromFile</td>
     <td>否</td>
-    <td>从指定文件中读取文本作为解密密码(注:此参数由2.4.0版本开始支持)</td>
+    <td>从指定文件中读取文本作为解密密码<br/>注:此参数由2.4.0版本开始支持</td>
     <td>passwordFromFile=/my-pwd-file.txt</td>
   </tr>
       <tr align="center">
     <td>passwordFromShell</td>
     <td>否</td>
-    <td>执行shell文件中的代码,并以其返货值作为解密密码(注:此参数由2.4.0版本开始支持)</td>
+    <td>执行shell文件中的代码,并以其返货值作为解密密码<br/>注:此参数由2.4.0版本开始支持</td>
     <td>passwordFromShell=/my-pwd-file.shell</td>
   </tr>
     <tr align="center">
     <td>skipProjectPathPrefix</td>
     <td>否</td>
-    <td>是否跳过指定前缀的项目路径(当class-winter解密逻辑试图解析那些进入premain但是非class-winter加密项目时,会因为获取印章失败Obtain project seal fail而停止,此时如果确认这个项目没有加密文件的话,可以使用此参数跳过)</td>
+    <td>是否跳过指定前缀的项目路径(当class-winter解密逻辑试图解析那些进入premain但是非class-winter加密项目时,会因为获取印章失败Obtain project seal fail而停止,此时如果确认这个项目没有加密文件的话,可以使用此参数跳过)<br/>注:此参数由2.6.5版本开始支持</td>
     <td>
         skipProjectPathPrefix=/D:/apache-tomcat-9.0.71/bin/
         <br/>
         多个通过___符号拼接:skipProjectPathPrefix=/D:/apache-tomcat-9.0.71/bin/___/D:/jd/classpath/lib/</td>
   </tr>
+  </tr>
+    <tr align="center">
+    <td>decryptProjectPathPrefix</td>
+    <td>否</td>
+    <td>是否仅解密指定前缀的项目路径(优先级低于skipProjectPathPrefix)<br/>注:此参数由2.6.5版本开始支持</td>
+    <td>
+        decryptProjectPathPrefix=/D:/apache-tomcat-9.0.71/bin/
+        <br/>
+        多个通过___符号拼接:decryptProjectPathPrefix=/D:/apache-tomcat-9.0.71/bin/___/D:/jd/classpath/lib/</td>
+  </tr>
   </tr>
     <tr align="center">
     <td>debug</td>
@@ -335,6 +345,7 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
 </table>
 
 
+
 ## <font  face="幼圆" color = "#3399EA" >巧用loader.path</font>
 
 - 需求描述
@@ -362,7 +373,7 @@ linux示例:tips='请不要直接使用混淆后的jar/war'</td>
         <parent>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-parent</artifactId>
-            <version>2.6.4</version>
+            <version>2.6.5</version>
             <relativePath/> <!-- lookup parent from repository -->
         </parent>
         <groupId>com.example</groupId>

+ 1 - 1
class-winter-core/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>com.idea-aedi</groupId>
         <artifactId>class-winter</artifactId>
-        <version>2.6.4</version>
+        <version>2.6.5</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 24 - 0
class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/Reverses.java

@@ -75,6 +75,18 @@ public class Reverses {
             }
         }
         Logger.debug(Reverses.class, "skipProjectPathPrefixSet -> " + skipProjectPathPrefixSet);
+        // 要解密处理逻辑的项目路径(ProtectionDomain.getCodeSource().getLocation().getPath())
+        Set<String> decryptProjectPathPrefixSet = new HashSet<>();
+        String decryptProjectPathPrefix = javaagentCmdArgs.getDecryptProjectPathPrefix();
+        if (!StrUtil.isBlank(decryptProjectPathPrefix)) {
+            String[] projectPathItem = decryptProjectPathPrefix.split("___");
+            for (String projectPathPrefix : projectPathItem) {
+                if (!StrUtil.isBlank(projectPathPrefix)) {
+                    decryptProjectPathPrefixSet.add(projectPathPrefix.trim());
+                }
+            }
+        }
+        Logger.debug(Reverses.class, "decryptProjectPathPrefixSet -> " + decryptProjectPathPrefixSet);
         
         final AtomicBoolean firstExec = new AtomicBoolean(false);
         
@@ -103,6 +115,18 @@ public class Reverses {
                             return classfileBuffer;
                         }
                     }
+                    if (decryptProjectPathPrefixSet.size() > 0) {
+                        boolean needTryDecrypt = false;
+                        for (String decryptProjectPathPrefix : decryptProjectPathPrefixSet) {
+                            if (projectPath.startsWith(decryptProjectPathPrefix)) {
+                                needTryDecrypt = true;
+                                break;
+                            }
+                        }
+                        if (!needTryDecrypt) {
+                            return classfileBuffer;
+                        }
+                    }
                     className = className.replace("/", ".").replace("\\", ".");
                     // 本项目的印章
                     if (Cache.sealCache == null) {

+ 21 - 0
class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/util/JavaagentCmdArgs.java

@@ -27,6 +27,13 @@ public class JavaagentCmdArgs {
     /** javaagent处理premain里的解密时,当识别到项目路径符合指定路径前缀时, 不尝试解密 */
     private String skipProjectPathPrefix;
     
+    /**
+     * javaagent处理premain里的解密时,当识别到项目路径符合指定路径前缀时, 尝试解密
+     * <br/>
+     * 注:当此参数不为空时,匹配到此参数前缀(当不匹配skipProjectPathPrefix)的ProjectPath将尝试解密,否则不尝试解密
+     */
+    private String decryptProjectPathPrefix;
+    
     private boolean debug;
     
     public String getPassword() {
@@ -50,6 +57,7 @@ public class JavaagentCmdArgs {
         return "JavaagentCmdArgs{" +
                 "password='" + password + '\'' +
                 "skipProjectPathPrefix='" + skipProjectPathPrefix + '\'' +
+                "decryptProjectPathPrefix='" + decryptProjectPathPrefix + '\'' +
                 ", debug=" + debug +
                 '}';
     }
@@ -112,6 +120,11 @@ public class JavaagentCmdArgs {
                 instance.setSkipProjectPathPrefix(keyValue.substring("skipProjectPathPrefix=".length()));
                 continue;
             }
+            // 解析decryptProjectPathPrefix
+            if (keyValue.startsWith("decryptProjectPathPrefix=")) {
+                instance.setSkipProjectPathPrefix(keyValue.substring("decryptProjectPathPrefix=".length()));
+                continue;
+            }
             if (keyValue.startsWith("debug=")) {
                 instance.setDebug(Boolean.parseBoolean(keyValue.substring("debug=".length())));
             }
@@ -152,4 +165,12 @@ public class JavaagentCmdArgs {
     public void setSkipProjectPathPrefix(String skipProjectPathPrefix) {
         this.skipProjectPathPrefix = skipProjectPathPrefix;
     }
+    
+    public String getDecryptProjectPathPrefix() {
+        return decryptProjectPathPrefix;
+    }
+    
+    public void setDecryptProjectPathPrefix(String decryptProjectPathPrefix) {
+        this.decryptProjectPathPrefix = decryptProjectPathPrefix;
+    }
 }

+ 1 - 1
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/AllTest.java

@@ -74,7 +74,7 @@ public class AllTest {
         String alreadyProtectedLibs = "encrypted-lib-have-pwd-1.0.0.jar:qwer123~";
         String jvmArgCheck = "-XX:+DisableAttachMechanism";
         String debug = "true";
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " excludePrefix=" + excludePrefix

+ 2 - 2
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/AlreadyProtectedLibs_Test.java

@@ -67,7 +67,7 @@ public class AlreadyProtectedLibs_Test {
         String originJarOrWar = projectRootDir + Constant.LINUX_FILE_SEPARATOR + "my-project-with-encrypted-lib-no-pwd.jar";
         String includePrefix = "non-exist";
         String alreadyProtectedLibs = "encrypted-lib-no-pwd-1.0.0.jar";
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " alreadyProtectedLibs=" + alreadyProtectedLibs
@@ -110,7 +110,7 @@ public class AlreadyProtectedLibs_Test {
         String includePrefix = "non-exist";
         String alreadyProtectedLibs = "encrypted-lib-have-pwd-1.0.0.jar:qwer123~";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " alreadyProtectedLibs=" + alreadyProtectedLibs

+ 2 - 2
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Debug_Test.java

@@ -36,7 +36,7 @@ public class Debug_Test {
         String originJarOrWar = projectRootDir + "boot-jar.jar";
         String includePrefix = "com";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 ;
@@ -64,7 +64,7 @@ public class Debug_Test {
         String originJarOrWar = projectRootDir + "boot-jar.jar";
         String includePrefix = "com";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " debug=" + true

+ 2 - 2
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/ExcludePrefix_Test.java

@@ -38,7 +38,7 @@ public class ExcludePrefix_Test {
         String originJarOrWar = projectRootDir + "boot-jar.jar";
         String includePrefix = "com.aspire.ssm.util.AesEncryptDecryptUtil,com.aspire.ssm.util.DbSecurityBeanUtil";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " debug=" + true
@@ -72,7 +72,7 @@ public class ExcludePrefix_Test {
         String includePrefix = "com.aspire.ssm.util.AesEncryptDecryptUtil,com.aspire.ssm.util.DbSecurityBeanUtil";
         String excludePrefix = "com.aspire.ssm.util.DbSecurityBeanUtil";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " excludePrefix=" + excludePrefix

+ 1 - 1
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/FinalName_Test.java

@@ -23,7 +23,7 @@ public class FinalName_Test {
         String includePrefix = "com";
         String finalName = "YiYaKaKa";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " finalName=" + finalName

+ 1 - 1
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/IncludeLibs_Test.java

@@ -42,7 +42,7 @@ public class IncludeLibs_Test {
         String includePrefix = "org.springframework.aop.target.dynamic,com.google.common.xml";
         String includeLibs = "spring-aop-5.1.8.RELEASE.jar,guava-28.2-jre.jar";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " includeLibs=" + includeLibs

+ 1 - 1
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/IncludePrefix_Test.java

@@ -39,7 +39,7 @@ public class IncludePrefix_Test {
         String originJarOrWar = projectRootDir + "boot-jar.jar";
         String includePrefix = "com.aspire.ssm.util";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " debug=" + true

+ 3 - 3
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/JvmArgCheck_Test.java

@@ -33,7 +33,7 @@ public class JvmArgCheck_Test {
     
         String jvmArg = "-XX:+DisableAttachMechanism,-Xms1024M";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " jvmArgCheck=" + jvmArg
@@ -65,7 +65,7 @@ public class JvmArgCheck_Test {
     
         String jvmArg = "-XX:+DisableAttachMechanism,-Xms1024M";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " jvmArgCheck=" + jvmArg
@@ -97,7 +97,7 @@ public class JvmArgCheck_Test {
     
         String jvmArg = "-XX:+DisableAttachMechanism";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " jvmArgCheck=" + jvmArg

+ 2 - 2
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/OriginJarOrWar_Test.java

@@ -32,7 +32,7 @@ public class OriginJarOrWar_Test {
         String originJarOrWar = projectRootDir + "non-exist.jar";
         String includePrefix = "com.aspire.ssm.util";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " debug=" + true
@@ -58,7 +58,7 @@ public class OriginJarOrWar_Test {
         String originJarOrWar = projectRootDir + "boot-jar.jar";
         String includePrefix = "com.aspire.ssm.util";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " debug=" + true

+ 3 - 3
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Password_Test.java

@@ -34,7 +34,7 @@ public class Password_Test {
         String includePrefix = "com";
         String password = "pwd123";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " password=" + password
@@ -65,7 +65,7 @@ public class Password_Test {
         String includePrefix = "com";
         String password = "pwd123";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " password=" + password
@@ -97,7 +97,7 @@ public class Password_Test {
         String includePrefix = "com";
         String password = "pwd123";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " password=" + password

+ 2 - 2
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/SupportFile_Test.java

@@ -42,7 +42,7 @@ public class SupportFile_Test {
         String originJarOrWar = projectRootDir + "normal-jar.jar";
         String includePrefix = "com";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 ;
@@ -62,7 +62,7 @@ public class SupportFile_Test {
         String includePrefix = "com";
         String supportFile = projectRootDir + "help";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " supportFile=" + supportFile

+ 3 - 3
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Tips_Test.java

@@ -32,7 +32,7 @@ public class Tips_Test {
         String originJarOrWar = projectRootDir + "boot-jar.jar";
         String includePrefix = "com";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 ;
@@ -55,8 +55,8 @@ public class Tips_Test {
         String tips = "[潘嘎之交] 潘: 你别怪潘叔说话比较直白, 网络上的东西都是虚拟的, 你把握不住, 孩子! 因为这里的水很深...";
     
         // 如果tips值由一些特殊字符(如空格等)的话,可以用windows双引号(linux单引号)引起来。
-        // java -jar class-winter-core-2.6.4.jar originJarOrWar=/boot-jar.jar includePrefix=com tips="[潘嘎之交] 潘: 你别怪潘叔说话比较直白, 网络上的东西都是虚拟的, 你把握不住, 孩子! 因为这里的水很深..."
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        // java -jar class-winter-core-2.6.5.jar originJarOrWar=/boot-jar.jar includePrefix=com tips="[潘嘎之交] 潘: 你别怪潘叔说话比较直白, 网络上的东西都是虚拟的, 你把握不住, 孩子! 因为这里的水很深..."
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " tips=" + (BashUtil.IS_WINDOWS ? "\"".concat(tips).concat("\"") : "'".concat(tips).concat("'"));

+ 5 - 5
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/War_Test.java

@@ -34,7 +34,7 @@ public class War_Test {
         String originJarOrWar = projectRootDir + "war-project.war";
         String includePrefix = "com";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 ;
@@ -62,7 +62,7 @@ public class War_Test {
         String includePrefix = "com";
         String password = "123456";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " password=" + password
@@ -93,7 +93,7 @@ public class War_Test {
         String alreadyProtectedLibs = "encrypted-lib-no-pwd.jar";
         String password = "oop857857";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " alreadyProtectedLibs=" + alreadyProtectedLibs
@@ -124,7 +124,7 @@ public class War_Test {
         String alreadyProtectedLibs = "encrypted-lib-have-pwd.jar:qwer123~";
         String password = "yiyakaka";
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " alreadyProtectedLibs=" + alreadyProtectedLibs
@@ -160,7 +160,7 @@ public class War_Test {
         String alreadyProtectedLibs = "encrypted-lib-have-pwd.jar:qwer123~";
         String debug = "true";
     
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " excludePrefix=" + excludePrefix

+ 1 - 1
class-winter-core/src/test/java/winter/com/ideaaedi/classwinter/Xml_Test.java

@@ -31,7 +31,7 @@ public class Xml_Test {
         String toCleanXmlChildElementName = "select";
         
         
-        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.4.jar"
+        String startBat = "java -jar " + projectRootDir + "class-winter-core-2.6.5.jar"
                 + " originJarOrWar=" + originJarOrWar
                 + " includePrefix=" + includePrefix
                 + " includeXmlPrefix=" + includeXmlPrefix

+ 1 - 1
class-winter-maven-plugin/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>com.idea-aedi</groupId>
         <artifactId>class-winter</artifactId>
-        <version>2.6.4</version>
+        <version>2.6.5</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
pom.xml

@@ -9,7 +9,7 @@
     </modules>
     <groupId>com.idea-aedi</groupId>
     <artifactId>class-winter</artifactId>
-    <version>2.6.4</version>
+    <version>2.6.5</version>
 
     <!-- 配置项目的基础信息 -->
     <name>class-winter</name>