漏洞的原理就不解释了,网上很多。这里写一下编译过程中报错的解决办法。
编译过程中可能遇到几个错误:
1、maven环境配置问题:
[ERROR] Please make sure you define the required toolchains in your ~/.m2/toolchains.xml file.
2、jdk版本错误:
[ERROR] jdk [ version='[11, )' ] 或者 : [ERROR] jdk [ version='[9, )' ]
我这是在win10下的操作步骤,有linux下的同学可参考类似的操作:
1、下载源文件:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2、解压到一个目录,我这里解压到 F:\code\log4j-2.15.0-rc2 下
3、打开cmd窗口,cd /d f:\code\log4j-2.15.0-rc2
4、运行maven的打包命令:mvn clean package -Dmaven.test.skip=true
结果报错:
[ERROR] Please make sure you define the required toolchains in your ~/.m2/toolchains.xml file.
解决办法:
1、安装相应版本的jdk
由于我的电脑只安装了jdk7和jdk8,当看到有jdk可能需要version=9时,我想到可能是需要新版本的jdk才能编译通过,于是偷个懒,干脆直接下载一个jdk17的最新稳定版本来编译,因为最新版一般是可以向下兼容的。下载地址:https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_windows-x64_bin.zip
下载完后解压出来,我的所有jdk版本都是安装在d:\jdk下,即d:\jdk\jdk7, d:\jdk\jdk8, d:\jdk\jdk17。
2、修改编译的配置文件:在源码目录有一个文件:toolchains-sample-win.xml,用编辑器打开后,在里面添加内容:(jdk路径根据实际情况修改)
<toolchain> <type>jdk</type> <provides> <version>1.7</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>D:\jdk\jdk7</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>1.8</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>D:\jdk\jdk8</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>9</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>D:\jdk\jdk17</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>11</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>D:\jdk\jdk17</jdkHome> </configuration> </toolchain>
如果有其他版本的jdk,也可以添加进去。
网上有说需要修改maven配置目录下的conf\toolchains.xml文件,我没有修改,直接指定了toolchains的路径也编译通过。
3、重新编译打包:
需要指定打包时的jdk链路配置文件,在mvn命令行增加-t xxx.xml配置文件。这里是在当前目录下,所以使用用的是相对路径:
mvn clean package -t toolchains-sample-win.xml -Dmaven.test.skip=true
(命令行中的-t参数是用于指定jdk版本链路的配置文件路径)
至此,配置修改过程基本完成,可以泡杯咖啡等待编译和打包完成了,编译时需要下载很多依赖包,可能需要较长时间。
相关推荐
Log4qt 1.4.2版本 qt专用
QFtp 编译报错 使用了未定义类型“QFtpPrivate”的方法
log4cxx是apache的一款优秀的日志文件记录工具,然而,下载能够编译成功的,即log4cxx + apr + apr-util 能够兼容,编译通过的。当时就因为下载的不能够兼容,费了好的的功夫,现在把他们上传上来,供后来人使用
iccavr编译putchar未定义时解决方案.pdf
iccavr编译putchar未定义时解决方案实用.pdf
主要解决在单例模式下类中声明静态指针存储单例对象,在.cpp文件中编译时显示未定义的解决办法: 参考博客: http://bbs.csdn.net/topics/10439749
主要介绍了vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
下面小编就为大家带来一篇完美解决IE9浏览器出现的对象未定义问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
Unknown type specifier表识符指定类型出错.例如类型字符拚错 Synbol not defined符号未定义.在程序中引用了未定义的标识符
将JavaScript对象类型的参数通过JSON.stringify转换成字符串传递时,IE5、6、7、8会报:“JSON”未定义 的错误。可以通过在html文件或者Jsp文件的head头内引入json2.js文件来解决,需要先下载json2.js,目前已经使用...
json2.js json.parse json未定义 的解决方案!
光绘导入CAM350报错问题的解决方法.doc
NULL 博文链接:https://1017401036.iteye.com/blog/2236527
sys未定义的解决方法sys未定义的解决方法
json2.js json.parse json未定义 的解决方案!
ABB机器人设置有效载荷的2种方法具体步骤(直接输入法+自动识别推算法2)
.Net4.0下ASP.NET在IE10以上版本访问的时候,遇到分页或者控件回发的时候会提示doPostBack未定义,这个补丁是用来在服务器端修正这个问题,安装完需要重启。如不想在服务器修正,可以看...
开发测试环境为Windows7 64位旗舰版、Visual Stuido 2010 、OpenCV3.0 beta,理论上支持OpenCV 3理论上支持目前已经发布的OpenCV3全版本编译运行。 另有OpenCV2的详细注释的示例程序源代码工程、书本配套可独立运行...
html2canvas在ie下报Promise未定义错误解决方案-附件资源
引入解决IE7及以下版本JSON未定义问题