<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      修復snakeyaml漏洞,與maven打包二三事

      1.背景

      snakeyaml:1.33被掃描出漏洞,需要升級版本;

      升級版本后發現與spring-boot-nacos-starter依賴的snakeyaml不兼容;

      java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.Constructor: method <init>()V not found

      參照網上的方法重寫幾個類以及無參構造函數,成功解決問題;

      但是有個應用是依賴的jar包單獨打包的,就導致無法載入自己重寫的snakeyaml的類。

       

      2.原始pom.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <parent>
              <artifactId>xdd</artifactId>
              <groupId>com.pcl.pero</groupId>
              <version>1.0.0-SNAPSHOT</version>
          </parent>
          <modelVersion>1.0.0</modelVersion>
      
          <artifactId>pcl-pero</artifactId>
      
          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter</artifactId>
              </dependency>
      
              <dependency>
                  <groupId>com.alibaba.boot</groupId>
                  <artifactId>nacos-config-spring-boot-starter</artifactId>
                  <version>0.3.0-RC</version>
              </dependency>
      
      
          </dependencies>
      
          <build>
              <finalName>pcl-pero</finalName>
              <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>
                                  <excludeGroupIds>
                                      org.projectlombok
                                  </excludeGroupIds>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
      
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-jar-plugin</artifactId>
                      <configuration>
                          <archive>
                              <manifest>
                                  <!--addClasspath表示需要加入到類構建路徑-->
                                  <addClasspath>true</addClasspath>
                                  <!--classpathPrefix指定生成的Manifest文件中Class-Path依賴lib前面都加上路徑,構建出lib/xx.jar-->
                                  <classpathPrefix>lib/</classpathPrefix>
                              </manifest>
                          </archive>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId>
                      <configuration>
                          <layout>ZIP</layout>
                          <includes>
                              <include>
                                  <groupId>${groupId}</groupId>
                                  <artifactId>${artifactId}</artifactId>
                              </include>
                          </includes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </project>

       

      3.如何修復

      主要思想就是自己打一個修改好代碼的jar包,打包的時候再引用這個jar包

      1.使用maven-dependency-plugin的unpack將重寫的方法覆蓋jar包里方法,并解壓到${project.build.directory}/classes路徑,后續可以注釋掉
      2.去${project.build.directory}/classes下打包新jar包,jar cvf snakeyaml-2.2.jar ./org
      3.把新打包的jar包添加進來,參考http://www.rzrgm.cn/wdgde/p/16541641.html
      4.exclusion排除依賴
      5.maven-jar-plugin配置manifestEntries,手動添加lib/snakeyaml-2.2.jar

       

      4.修改后的pom.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <parent>
              <artifactId>xdd</artifactId>
              <groupId>com.pcl.pero</groupId>
              <version>1.0.0-SNAPSHOT</version>
          </parent>
          <modelVersion>1.0.0</modelVersion>
      
          <artifactId>pcl-pero</artifactId>
      
          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter</artifactId>
              </dependency>
      
              <dependency>
                  <groupId>com.alibaba.boot</groupId>
                  <artifactId>nacos-config-spring-boot-starter</artifactId>
                  <version>0.3.0-RC</version>
                  <exclusions>
                      <exclusion>
                          <groupId>org.yaml</groupId>
                          <artifactId>snakeyaml</artifactId>
                      </exclusion>
                  </exclusions>
              </dependency>
      
              <dependency>
                  <groupId>org.yaml</groupId>
                  <artifactId>snakeyaml</artifactId>
                  <version>2.2</version>
                  <scope>system</scope>
                  <systemPath>${project.basedir}/lib/snakeyaml-2.2.jar</systemPath>
              </dependency>
      
          </dependencies>
      
          <build>
              <finalName>pcl-pero</finalName>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-dependency-plugin</artifactId>
                      <executions>
                          <execution>
                              <id>unpack</id>
                              <phase>generate-sources</phase>
                              <goals>
                                  <goal>unpack</goal>
                              </goals>
                              <configuration>
                                  <artifactItems>
                                      <artifactItem>
                                          <groupId>org.yaml</groupId>
                                          <artifactId>snakeyaml</artifactId>
                                          <overWrite>false</overWrite>
                                          <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                      </artifactItem>
                                  </artifactItems>
                              </configuration>
                          </execution>
                          <execution>
                              <id>copy</id>
                              <phase>package</phase>
                              <goals>
                                  <goal>copy-dependencies</goal>
                              </goals>
                              <configuration>
                                  <!--指定的依賴路徑-->
                                  <outputDirectory>
                                      ${project.build.directory}/lib
                                  </outputDirectory>
                                  <excludeGroupIds>
                                      org.projectlombok
                                  </excludeGroupIds>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
      
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-jar-plugin</artifactId>
                      <configuration>
                          <archive>
                              <manifest>
                                  <!--addClasspath表示需要加入到類構建路徑-->
                                  <addClasspath>true</addClasspath>
                                  <!--classpathPrefix指定生成的Manifest文件中Class-Path依賴lib前面都加上路徑,構建出lib/xx.jar-->
                                  <classpathPrefix>lib/</classpathPrefix>
                              </manifest>
                              <manifestEntries>
                                  <Class-Path>lib/snakeyaml-2.2.jar</Class-Path>
                              </manifestEntries>
                          </archive>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId>
                      <configuration>
                          <layout>ZIP</layout>
                          <includes>
                              <include>
                                  <groupId>${groupId}</groupId>
                                  <artifactId>${artifactId}</artifactId>
                              </include>
                          </includes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </project>

       

      posted @ 2024-12-02 18:47  wdgde  閱讀(1202)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 宣城市| 韩国三级网一区二区三区| 亚洲大尺度一区二区三区| 国产毛片三区二区一区| 人妻少妇久久中文字幕| 高清精品视频一区二区三区| 国产AV无码专区亚洲AV漫画| 久久久久人妻精品一区三寸| 国产精品老熟女免费视频| 亚洲精品成人7777在线观看| 国产一区二区日韩在线| 久久亚洲国产精品五月天| 精品国产乱码久久久久APP下载| 老鸭窝在线视频| 精品一区二区三区不卡| av人摸人人人澡人人超碰下载| 极品少妇的粉嫩小泬看片| bt天堂新版中文在线| 色婷婷av久久久久久久| jk白丝喷浆| 青青青青久久精品国产| 亚洲香蕉网久久综合影视| 精品综合一区二区三区四区| 国产成人一区二区三区视频免费| 亚洲精品免费一二三区| 国产午夜精品福利免费看| 一道本AV免费不卡播放| 妺妺窝人体色www聚色窝仙踪| 中文字幕国产精品资源| 久久国产精品无码网站| 精品一区二区三区在线观看l| 欧美不卡无线在线一二三区观| 国产日韩av免费无码一区二区三区| 成人一区二区人妻不卡视频| 久久综合久久美利坚合众国| 99久久婷婷国产综合精品青草漫画 | 日韩乱码视频一区二区三区| 成人午夜在线观看日韩| 一区二区三区精品视频免费播放 | 亚洲国产精品久久久天堂麻豆宅男| 强奷乱码欧妇女中文字幕熟女|