源码编译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自定义它以内置任何配置。例如:configIdconfigDirectory

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调用

 

posted @   南水之源  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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目录,文档目录,缓存目录等)
点击右上角即可分享
微信分享提示