从零开始学GeoServer源码六(如何打包发布?)

快速导航

从零开始学GeoServer源码一(开篇)
从零开始学GeoServer源码二(搭建开发环境)
从零开始学GeoServer源码三(断点应该打在哪?)
从零开始学GeoServer源码四(自定义插件或拓展数据源)
从零开始学GeoServer源码五(切片原理及自定义插件支持wms、wmts、tms)
从零开始学GeoServer源码六(如何打包发布?)
从零开始学GeoServer源码七(如何注册服务并发布3dtiles和cesium的地形terrain?)
从零开始学GeoServer源码八(内存溢出?Out of Memory Error ?)
从零开始学GeoServer源码九(如何集成Cesium以实现预览3dtiles和terrain服务?)
从零开始学GeoServer源码十(如何修改菜单项以整合我们的功能?)
从零开始学GeoServer源码十一(如何解决No Multipart-config for Servlet错误)
从零开始学GeoServer源码十二(GeoServer中的切片规则)
从零开始学GeoServer源码十三(GeoServer生成的矢量切片缺失问题)
从零开始学GeoServer源码十四(GeoServer Cloud微服务版本初体验)

点我去AIGIS公众号查看本文

前言: 我们前五篇讲解了如何在 GeoServer 中开发自己需要的功能,那么当功能开发完成之后,我们需要做的就是打包发布。网上关于 GeoServer 打包发布的博文少的可怜,几乎没有,所以我们这里就来详细讲讲,顺便说说我遇到的那些坑。

1.打包

   GeoServer 的打包是要在【 gs-web-app 】目录下执行命令:

//外网
mvn clean package
//内网
mvn clean package -o

2.发布

  打包好的 war 包在【 gs-web-app 】的 target 目录下,拷贝到 tomcat 或者 jettywebapps 目录下即可。 tomcatjetty 如何修改端口号请自行百度。

3.注意事项

3.1 跨域设置引发的报错

  我们之前在第二篇开发环境配置中讲过如何开启跨域访问,还不清楚的同学可移步从零开始学GeoServer源码二(搭建开发环境),这里我们开启的是 jetty 的跨域访问配置,但是 java 开发的同学都喜欢将程序部署在 tomcat 里,所以如果不更改任何配置就部署到 tomcat 下,在 tomcat 启动时,会报一个错,触发一个 destory ,程序就崩了。所以如果要部署在 tomcat 下,需要将 web.xml 中的 org.eclipse.jetty.servlets.CrossOriginFilter 处理的那一段跨域设置注释掉
在这里插入图片描述
但将 org.apache.catalina.filters.CorsFilter 处理的那一段注释放开
在这里插入图片描述
最后别忘了,cross-origin 处理的那一段也要放开。
在这里插入图片描述

3.2 本地jar包未打入war包引发的错误

  我们之前开发时,手动从 GeoServer 官网下载了一堆依赖包,有 MBTiles 的,有 MongoDB 的,这些 jar 包并没有被 maven 管理,所以发布了以后,自然也找不到,也会引起报错。解决方法就是,手动拷贝这些 jar 包到 war 包里( war 包可以使用压缩软件打开),或者配置一下 maven 打包时把这些 jar 包都纳入。

3.3 内网打包报错

  内网打包时,总会去下一些 xml 文件,但是内网又不能访问这些 xml 文件,所以要么使用 nexus 搭一个私服,要么在外网执行一下

mvn dependency:go-offline

  等待外网将打包的所有依赖项都下载好,再拷贝到内网,内网要设置 maven 离线运行。不过我在这里还是遇到了一个匪夷所思的错误,当我删除了 repository 文件中所有的 *.repository 和 *.sha1 文件后,maven compile 失败,必须在没删之前做一次 compile ,然后再删,才没问题。不知道是不是 mavenbug

3.4 擅自将源码中的src文件夹移动位置引发的错误

   GeoServer 打包时,会去读取 src 文件夹的相对路径 data/minimal 文件夹中的内容,里面是一些默认的配置文件,如果移动了 src 文件夹的位置,就会报错,找不到。所以要想修改位置,就要修改【 gs-web-app 】的 pom 文件中的 build 配置,搜索 minimal ,修改之则可。

4.总结

  这个系列到此也算一个小小的里程碑了,我刻意避免了放一堆代码上来,纯讲理论,就是希望即使不是giser,也能看得懂。回顾这个系列,感觉还缺了点什么,比如整个GeoServer的架构,比如分辨率(resolution)、比例尺,再比如wms、wmts、tmsopenlayerscesium里的加载,这些我都经过了测试,都没问题。后期我再补吧,现在读者将就看,如有问题,可以给我留言,我会尽量解答。由于本人水平有限,难免存在一些错误,欢迎读者指正。
更多精彩内容见公众号AIGIS

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGIS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值