geoServer2.23.1源码编译

被源码编译卡了一个晚上,最后终于成功编译了,菜鸟在此记录一下。

编译环境为 jdk11.0.19+maven-3.9.3+geoserver2.23.1(geoserver直接git clone的最新版)

一、环境准备

1 jdk

本人系统环境中有两个版本的jdk,系统环境变量中配置的是jdk11,但是也有jdk1.8

2 maven

maven安装的是最新版本,根据如下教程安装即可

Maven详细安装教程_maven安装_慕之寒的博客-CSDN博客

3 IDEA

运行源码必然得有编译器,本人用的IDEA版本是2022.3.2

geoServer2.23.1源码编译_第1张图片

二、geoserver源码下载

方法一:可以在geoserver官网下载

官网地址: https://geoserver.org/release/stable/https://geoserver.org/release/stable/geoServer2.23.1源码编译_第2张图片

方法二: 也可以直接从github上拉取最新版本

git clone https://github.com/geoserver/geoserver.git 

三、geoserver编译

1.idea环境配置(这点很关键,也可参考其他文章)

①先是设置File->Settings中的maven地址和java编译版本

geoServer2.23.1源码编译_第3张图片

geoServer2.23.1源码编译_第4张图片

geoServer2.23.1源码编译_第5张图片

②设置项目结构File->Project Structure

 geoServer2.23.1源码编译_第6张图片

Project Settings->Project中设置java版本,没有合适版本的可以点击Add jdk,然后选择jdk安装路径

geoServer2.23.1源码编译_第7张图片geoServer2.23.1源码编译_第8张图片

Project Settings->Modules设置每个模块的Language level(就是jdk版本的意思吧?),前几次编译源码的时候前面几步配置不对,然后到这里手动一个一个设置的太麻烦了,最后还失败了。所以这里检查一下应该就可以,轻易不要手动一个个改

 geoServer2.23.1源码编译_第9张图片

在Project中添加了jdk版本后,应该可以在SDKs这里看到对应jdk的版本号以及具体信息,显示正常的话也不需要改动什么

geoServer2.23.1源码编译_第10张图片

 ③编辑run/debug配置

geoServer2.23.1源码编译_第11张图片

2.用idea右边栏的maven工具开始编译

用idea打开geoserver下的src文件夹(注意别打开外面的,idea会不识别maven项目)

geoServer2.23.1源码编译_第12张图片

geoServer2.23.1源码编译_第13张图片

这两步成功都会看到build success

geoServer2.23.1源码编译_第14张图片

clean相对快一些,十几分钟,install慢点,得大概一个半小时

3. success后点击maven窗口左上角的同步窗口(有的时候编译器会自动同步,不过自己点一下也可以,同步后包里面的一些波浪线就会消失掉了。强迫症狂喜!!)

geoServer2.23.1源码编译_第15张图片

问题记录

1.install过程中会碰到这种错误,可以忽略,他是删除文件失败,对于其他暂时没发现影响。

 2.类文件具有错误的版本55.0应为52.0。

因为最开始jdk用的1.8,后来发现这个错误改成jdk11后重新下载源码重新编译成功的。

3.install时候发现了这个错误不知道有没有影响

4.在单位局域网里还是install失败。。。。不知道是不是网络原因,再研究研究吧。

geoServer2.23.1源码编译_第16张图片

5.虽然install失败但是成功debug启动了。。。

就是多做了如图所示的修改点击蓝色的字shorten the command line and rerun

geoServer2.23.1源码编译_第17张图片

【最后修改】

因为没有办法install和package,虽然源码启动了,但是没法打包也没有意义。

于是继续查资料修改,在做了两处改动后,成功打包!

geoServer2.23.1源码编译_第18张图片

 一、类文件具有错误的版本 61.0, 应为 55.0

把POM中报错的包的版本号改成和55.0(jdk11)(你当前jdk的版本)匹配的版本号

原來的版本是11.0.14

geoServer2.23.1源码编译_第19张图片

改成9.4.51.v20230217

 geoServer2.23.1源码编译_第20张图片

沒有所有包的截图,不过根据报错的信息,哪个包报错就改哪个包就行。

版本号可以参照如下图中同名的包,因为源码中pom很多,有的pom依赖的是正确的版本,所以项目的ExternalLibraries中两个版本的包都有,只需要把高版本的改成和低版本的一致即可。

 geoServer2.23.1源码编译_第21张图片

 二、报错There are test failures

 修改settings中的如下属性为true即可(跳过maven的test)geoServer2.23.1源码编译_第22张图片

修改后效果

 geoServer2.23.1源码编译_第23张图片

然后就完成啦!

geoServer2.23.1源码编译_第24张图片geoServer2.23.1源码编译_第25张图片

 

 小白一个,有什么写的不对的地方欢迎批评指正。也欢迎交流源码编译的其他问题。

还得继续加油呀

你可能感兴趣的:(gis,java,大数据,github)