首页 > 编程语言 >源码编译geoserver

源码编译geoserver

时间:2024-12-11 17:10:00浏览次数:4  
标签:install 配置文件 Maven 编译 源码 构建 模块 geoserver mvn

官方链接: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命令不是必需的,但建议使用。运行此命令将执行以下操作:

  • 编译源代码

  • 运行单元测试

  • 将工件安装到本地 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:运行-DconfigId = release -DconfigDirectory = .. /.. /.. / data / release

如果您有想要使用的自定义数据目录,您也可以使用绝对路径。

标签:install,配置文件,Maven,编译,源码,构建,模块,geoserver,mvn
From: https://www.cnblogs.com/lyggqm/p/18600021

相关文章

  • SSM怡莱酒店管理系统6pk28(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着酒店行业的竞争日益激烈,提升酒店运营效率和服务质量成为酒店管理的核心任务。传统的酒店管理方式存在诸多不足,如人工操作繁琐、信......
  • SSM银行学习系统buwu2--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、课题背景与意义随着金融行业的快速发展,银行业务日益复杂,对员工的专业技能和综合素质要求不断提高。传统的培训方式存在时间、地点限制,且难以精......
  • keepalived编译安装-CentOS X86
    环境信息操作系统:CentOSLinuxrelease7.9.2009(Core)架构:X86keepalived版本:2.3.1编译wgethttps://www.keepalived.org/software/keepalived-2.3.1.tar.gztarxvfkeepalived-2.3.1.tar.gzcdkeepalived-2.3.1/./configure--prefix=/usr/local/keepalivedmakema......
  • A5433 Java+Jsp+Servlet+MySQL+微信小程序+LW+在线点餐小程序的设计与实现 源码 配置
    在线点餐小程序的设计与实现1.摘要2.开发目的和意义2.1系统开发目的2.2系统开发意义3.系统功能设计4.系统界面截图5.源码获取1.摘要摘要近几年,人们生活水平日益提升,但工作强度和压力不断增强,尤其是对于上班族而言,到餐厅吃饭费时费力,而传统的APP点餐难以适应针对......
  • 用IDEA编译jar文件
    1、选择项目结构2、改一下输出目录,再创建清单3、这里最好不换目录,直接点确定4、点文件夹按钮选择主类把右边编译输出拖到左边,然后点确定5、编译Artifacts选构建即可输出......
  • 图文短视频交友,自营商城源码,打造社交购物新体验
    结合图文短视频交友和自营商城源码,可以打造出一个全新的社交购物体验。以下是对这一概念的详细解析:一、技术架构与实现后端技术:Java语言:作为后端开发的主要语言,Java以其强大的跨平台能力和稳定性,成为构建此类系统的首选。SpringBoot框架:用于构建高效的后端服务,简化配置和......
  • 【计算机毕设选题推荐】基于学生兴趣的学习资源推荐系统的设计与实现 【附源码+讲解+
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 【计算机毕设选题推荐】基于python的健身房管理系统的设计与实现 【附源码+讲解+部署
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 【计算机毕设选题推荐】基于springboot的健身房管理系统的设计与实现 【附源码+数据库
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 源码分析之Openlayers中的控件篇Control基类介绍
    概述Openlayers中内置了9类控件,这9类控件都是基于Control类,而Control类则是继承于BaseObject类,如下图所示:如上,这9类控件分别是:Attribution:属性控件FullScreen:全屏控件MousePosition:鼠标位置控件OverviewMap:鹰眼控件Rotate:旋转控件ScaleLine:比例尺控件Zoom:缩放控件,可......