log4j漏洞?只给源码不打包?还打不成功?看这里吧

324 阅读1分钟

这里是使用的idea 所以也直接用内置的maven

1.下载源码并导入idea

github.com/apache/logg…

2.使用阿里镜像源

新建settings-ali.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
      
      <mirrors>
    <mirror>
 <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
 <name>Nexus aliyun</name>

 <url>http://maven.aliyun.com/nexus/content/groups/public</url>

</mirror>
  </mirrors>
</settings>

idea修改setting

image-20211213170822888.png

下载完成后开始修改源码

3. 修改root下pom.xml

目的是提高打包速度,避免没必要的错误

root下module减少为以下几个

<modules>
    <module>log4j-api-java9</module>
    <module>log4j-api</module>
    <module>log4j-core-java9</module>
    <module>log4j-core</module>
    <module>log4j-core-its</module>
    <module>log4j-1.2-api</module>
    <module>log4j-slf4j-impl</module>
    <module>log4j-slf4j18-impl</module>
    <module>log4j-to-slf4j</module>
  </modules>

此时打包的话因为log4j-api-java9会报错,需要安装jdk9

4. 安装jdk9

自己搞

如果装了jdk9 打包还是有问题 在maven的m.2文件夹下增加文件toolchains.xml,配置上jdk9的设置

<?xml version="1.0" encoding="UTF-8"?>
<toolchains xmlns="http://maven.apache.org/TOOLCHAINS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/TOOLCHAINS/1.1.0 http://maven.apache.org/xsd/toolchains-1.1.0.xsd">
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>9</version>
      <vendor>oracle</vendor>
    </provides>
    <configuration>
      <jdkHome>C:\Program Files\Java\jdk-9.0.4</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

5.打包

image-20211213171245284.png

跳过测试最好加上 不然打包很慢而且成不成功就保证不了了

6.搞定

image-20211213171358308.png

最后自己拿出最重要的 log4j-core-2.16.0.jar和log4j-api-2.16.0.jar替换代码升级吧