转载请注明出处:https://oldnoop.tech/c/211.html
安装geoserver
在geoserver的官网或者sourceforge下载geoserver的bin.zip压缩包
解压缩
目录结构包括
|--bin 命令目录
|--data_dir 数据目录
|--etc 环境参数配置目录
|--lib jar包目录
|--logs 日志目录
|--resources 资源文件目录
|--webapps web资源文件目录
运行bin目录下的startup.bat
浏览器访问 http://localhost:8080/geoserver
右上角,使用默认的用户名和密码登录, 用户名:admin 密码: geoserver
也可以下载war包,放在tomcat容器中运行
源代码运行
下载源代码,导入IDE,maven编译失败,一共200多个工程,特别是早期版本
很多的依赖jar包的所在仓库已经废弃,或者仓库中的jar包版本号已经被修改,导致无法下载,
改动的地方非常多,200多个工程的pom文件,暂时踩坑
换种思路,
创建普通web工程
在IDE中创建普通的web工程,这里命名工程为geoserver,
准备源代码
下载源代码,在github下载,选择指定的tag下载带有小版本号的版本,
下载后的src文件夹重命名为source,将source文件夹复制到IDE的geoserver工程根目录下
依次将source文件夹下的各个模块的src/main/java,和src/main/resources文件夹,设置为源代码目录
对于community和extension两个文件夹,如果没有用到,可以暂不加入源代码目录
准备web资源文件
下载对应版本的war包,在sourceforge下载,解压缩,再将geoserver.war
将geoserver中的 data文件夹, WEB-INF 文件夹 和 index.html 都复制到IDE中的web根目录下,eclipse中默认是WebContent
这里说明一下, geoserver的数据目录, 在bin.zip包中默认是data_dir文件夹, 在war包中是默认data文件夹
运行源代码工程
添加tomcat的web运行时环境,
可以修改 启动超时时间timeout 为600秒,以便以debug模式启动可以进行调试
可以修改 端口号不使用8080,这里设置为38080,避免和现有的开发使用的端口冲突
浏览器访问 http://localhost:38080/geoserver, 使用默认的用户名和密码 admin , geoserver 登录
自动发布
通过geoserver的web页面,来发布工作区,命名空间,数据存储,样式,图层,图层组,切片等都需要手工操作,
这里提出自动发布的概念,有什么意义?
目的
1)测试,提高数据准备阶段的效率, 进而为自动化测试提供支持
2)批量发布场景,采用流水线作业, 运维操作 代码化, 流水线操作支持
3)容器服务编排,制作docker镜像等提供支持
手工发布的操作流程
在geoserver的web页面,进行各种发布的操作,都会生成对应的文件,这里采用的思想 和jenkins 的实现思想一样,生成的文件,可以复制到别的server上复用
所以,这里,只要分析,各种操作,生成了哪些文件,以及文件的内容是哪些,就可以 实现 自动发布
这里针对一个系统自带的例子,工作空间tiger,存储nyc,图层组tiger-ny,图层 tiger:giant_polygon,tiger:poi,tiger:poly_landmarks,tiger:tiger_roads为例
1) 创建工作区
数据目录(data_dir)/workspaces/工作区名称tiger/workspace.xml,namespace.xml
2)创建数据存储
在数据目录(data_dir)/data/数据存储名nyc,这个可以随意,为统一管理,一般为一种地图数据指定一个见名知意的文件夹
数据目录(data_dir)/workspaces/工作区名tiger/数据存储名nyc/datastore.xml
3)创建样式
数据目录(data_dir)/styles/样式名.sld
数据目录(data_dir)/styles/样式名.xml
这个例子中没有使用新的样式,记录在这里,在实际用到的场景可以考虑
4)创建图层
数据目录(data_dir)/gwc-layers/LayerInfoImpl--xxx-yyy1.xml
这里有4个文件
5)创建图层组
数据目录(data_dir)/gwc-layers/LayerGroupInfoImpl--xxx-yyy5.xml
LayerGroupInfoImpl--570ae188_124761b8d78_-7fad.xml
通过上面的文件名称,以及文件中的内容,发现是很有规律可循的,
可以按照这些规律,自动生成以上的文件,并存放到对应的文件夹,完成自动发布