源码编译geoserver(Maven)
geoserver官方链接:https://docs.geoserver.org/main/en/developer/maven-guide/index.html
Maven 指南
使用 Maven 构建 GeoServer 的参考。
安装 Maven
查看工具。
运行 Maven
Maven 提供了广泛的命令,可用于执行从编译模块到生成测试报告等所有操作。
大多数 Maven 命令既可以在源代码的根目录下运行,也可以在特定的模块中运行。
当尝试从源码的根目录运行 maven 命令时,需将目录从根目录更改为src目录
。
从源码的根目录或包含其他模块的目录运行命令时,该命令将针对所有模块运行。从单个模块运行命令时,该命令仅针对该模块运行。
构建
与 GeoServer 一起使用的最常用的 maven 命令是 install 命令:
mvn clean install
虽然此clean
命令不是必需的,但建议使用。运行此命令将执行以下操作:
编译源代码
运行单元测试
将geoserver构件安装到本地 Maven 仓库中
跳过测试
在执行构建时跳过单元测试通常很有用。将标志添加 -DskipTests
到构建命令将仅编译单元测试(有些运行不过,会影响安装),但不运行它们:
mvn -DskipTests clean install
离线构建
Maven 会自动下载正在构建的模块声明的依赖项。对于 SNAPSHOT 依赖项,Maven 每次执行当天的第一次构建时都会下载更新。
GeoServer 依赖于 GeoTools 库的 SNAPSHOT 版本。自动下载可能会导致构建时间过长,因为 Maven 会下载更新的 GeoTools 模块。如果 GeoTools 是在本地构建的,则无需进行这些下载。
此外,如果在本地修改 GeoTools,则应使用模块的本地版本而不是 SNAPSHOT 版本。
可以通过在“离线模式”下运行 maven 来解决此问题:
mvn -o clean install
在离线模式下,Maven 不会下载外部依赖项,也不会更新 SNAPSHOT 依赖项。
构建扩展
默认情况下,扩展不包含在构建中。它们通过配置文件明确添加到构建中。例如,以下命令将restconfig
扩展添加到构建中:
mvn clean install -P restconfig
可以同时启用多个扩展:
mvn clean install -P restconfig,oracle
名为的特殊配置文件allExtensions
可启用所有扩展:
mvn clean install -P allExtensions
恢复构建
-
修复测试失败后,您可以从构建中的特定点“恢复”:
mvn install -rf extension/wps
-
从 301 重定向中恢复
从 2.0.10 开始,Maven 中存在一个长期存在的错误,即在移动工件时处理 301 错误。解决方法是使用以下选项运行 Maven:
mvn install -Dmaven.wagon.provider.http=httpclient
这不是一个经常出现的问题。
配置文件
pom.xml 文件中定义了其他配置文件,提供可选的构建步骤。配置文件直接通过 -P 标志启用,其他配置文件则根据使用的平台或定义的 -D 属性自动激活。
要将发布模块作为构建的一部分进行构建:
-Drelease
包括远程测试:
-PremoteOwsTests
配置文件还用于管理可选扩展社区插件:
-Pproxy
-Poracle
-Pupload
-Pwps
pom.xml 文件中定义了其他配置文件,提供可选的构建步骤。配置文件直接通过 -P 标志启用,其他配置文件则根据使用的平台或定义的 -D 属性自动激活。
要使用 UML 图构建 javadoc:
-Duml
要将发布模块作为构建的一部分进行构建:
-Drelease
要包含旧模块:
-Plegacy
包括远程测试:
-PremoteOwsTests
配置文件还用于管理几个可选的社区插件:
-Pupload
-Pwps
-Pproxy
生成测试覆盖率报告
可以通过启用jacoco配置文件运行测试来生成测试覆盖率报告:
mvn test -Pjacoco
覆盖率报告在每个模块的target/site/jacoco目录中生成。
使用 Jetty 运行 web 模块
Maven Jetty 插件可用于运行基于嵌入式 Jetty 容器中的 Web 模块:
cd geoserver_2.0.x/src/web/app
mvn jetty:run
此命令必须从 web/app 模块运行,如果从其他地方运行则会失败。
上述命令将使用内置数据目录运行 GeoServer。要指定不同的数据目录,GEOSERVER_DATA_DIR
请使用以下标志:
mvn -DGEOSERVER_DATA_DIR=/path/to/datadir jetty:run
构建 web 模块
当安装完web模块时
,它会内置一个特定的配置。默认情况下,这是配置。但是,可以通过和 标志minimal
自定义它以内置任何配置。例如:configId
configDirectory
mvn clean install -DconfigId=release -DconfigDirectory=../../../data/release
上述命令根据 GeoServer 附带的发布配置构建 Web 模块。 是configId
要包含的配置目录的名称, 是configDirectory
要包含的配置目录的父目录。
这也可以在运行本地 jetty 应用服务器时使用:
mvn jetty:run -DconfigId=release -DconfigDirectory=../../../data/release
如果有想要使用的自定义数据目录,也可以使用绝对路径。
==============================================================
最简单编译运行流程(非idea):
1.编译部署:在geoserver/src文件夹下运行命令行
//需要网上的依赖库
mvn install -DskipTests -T 2C
//使用本地依赖库
mvn install -DskipTests -T 2C -o
2.启动geoserver:在geoserver/src/web/app文件夹下运行命令行
mvn jetty:run
3.调用geoserver,在浏览器下输入
http://localhost:8080/geoserver/web
身份:admin
密码:geoserver
4.进行日常geoserver调用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2018-12-11 [转][C++]佛祖保佑,永无bug。C++ BUG解决方案
2015-12-11 [ios][swift]Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)