源码编译geoserver(idea)
官方教程:https://docs.geoserver.org/main/en/developer/quickstart/intellij.html
从 git 存储库中检出源代码:
git clone https://github.com/geoserver/geoserver.git geoserver
列出可用的分支:
% git branch
2.21.x
2.22.x
* main
选择main最新动态:
% git checkout main
或者为不太可能经常更改的版本选择一个稳定的分支:
% git checkout 2.22.x
在这个例子中,我们假设您的源代码位于名为的目录中geoserver,但通常建议使用更具描述性的名称。
将模块导入 IntelliJ
-
运行 IntelliJ IDE
-
从初始面板中选择
Open。
-
导航到
geoserver/src/pom.xml目录并单击OK。
-
当系统询问时单击。
Open as a Project
-
或者,根据平台不同,IntelliJ 可能会要求。
Trust the Project
-
等待 IntelliJ
Sync依赖项,可以从Build底部的选项卡面板跟踪该过程。
完成 GeoServer 项目配置
-
点击。
File > Project Structure
-
更新并根据 GeoServer 版本
Name选择正确的。SDK
-
点击。
File > Settings
-
从,启用。
Build, Execution, Deployment > Compiler > Annotation ProcessorsAnnotation processing
-
点击。
Build > Rebuild Project
从 IntelliJ 运行 GeoServer
-
从项目浏览器中选择
web-app模块 -
导航到
org.geoserver.web包 -
右键单击
Start该类,然后单击Modify Run Configuration...
- 这里如果找不到"modify run config..",就在最上方工具栏点run-->edit config..
-
正确设置为非常重要。打开对话框后,微调启动环境(包括设置或)。设置满意后,单击。
Working directorysrc/web/appEdit ConfigurationsGEOSERVER_DATA_DIRjetty.portOK
-
现在可以通过选择运行 GeoServer
Run -> Run 'Start'
故障排除
-
如果出现“无法找到符号类 ASTAxisId”等错误,则表示某些生成的代码未包含在构建中。使用
wcs1_1作为工作目录,运行mvn clean install -
如果出现“找不到符号 AbstractUserGroupServiceTest”等错误,请
security-tests在安全模块中重建项目。右键单击security-tests项目,然后单击重建。 -
在 IntelliJ 的最新版本中,注释处理器已启用。如果因此出现错误,请从编译器设置中取消选中此选项。

-
如果 IntelliJ 出现类似以下错误消息,请点击
Command line is too long.Shorten the command line and run.
如果有服务器在 localhost:8080 上运行,请查看Eclipse 指南以获取有关更改为其他端口的说明。
使用扩展运行 GeoServer
上述说明假设运行 GeoServer 时未启用任何扩展。如果需要某些扩展,模块web-app会声明一些配置文件,这些配置文件将在运行时启用特定扩展Start。要启用扩展,请打开工具并选择要启用的配置文件。Maven Projects
可以在 中找到受支持的配置文件的完整列表src/web/app/pom.xml。
为了将 GeoServer 执行与新模块同步,请从工具中单击按钮 (1),然后单击(2),完成后单击(3)。Maven ProjectsReload All Maven ProjectBuild the ProjectRun 'Start'
访问 GeoServer 首页
-
几秒钟后,GeoServer 应该可以通过以下网址访问:http://localhost:8080/geoserver
-
默认
admin密码是geoserver。
开发环境
代码格式化
GeoServer 使用 [palantir-java-format]( https://github.com/palantir/palantir-java-format?tab=readme-ov-file#palantir-java-format ),它是 google-java-format AOSP 样式更新的 Lamda 表达式和 120 列的一个分支。
格式化插件嵌入在构建中,并将在每次构建时重新格式化代码,以匹配编码约定。提交之前,请务必在本地构建!
palantir-java-format项目为 IntelliJ提供了一个[插件]( https://plugins.jetbrains.com/plugin/13180-palantir-java-format )。




浙公网安备 33010602011771号