1、geoserver中文开发手册一目录目 录写在前面一 介绍二 工具JavaMavenSubversion三 源代码源代码提交库结构分支结构四 快速入门取出源代码由 Maven构建由 Maven生成 Eclipse工程文件导入模块进 Eclipse在 Eclipse中运行 GeoServer访问 GeoServer首页五 Maven 指南六 Eclipse 指南七 编程指南八 释放指南九 释放测试检查列表十 CITE 测试指南十一 政策与步骤二介绍、工具、源代码三章一 介绍空。二 工具在 GeoServer开发者环境搭建以前,需要安装以下工具:JavaGeoServer开发需要 JDK1.5及其
2、以上版本,可从 Sun Microsystems获取。注:除了可以使用 Sun提供的 JDK以外,也可以使用其它的,但这里我们推荐使用 Sun的。MavenGeoserver使用 Maven工具构建。当前推荐版本是 2.1.0,可从 Apache获取。虽然 2.1.0是推荐的,但 2.0.8以上版本同样可用。SubversionGeoserver源代码由 subversion库完成存储和版本管理。对于不同平台有多种 subversion客户端可获取。更多细节请访问:http:/subversion.tigris.org/getting.html 。三 源代码源代码GeoServer源代码存放在
3、: http:/svn.codehaus.org/geoserver。使用以下方式取出开发版/trunk 版本svn co http:/svn.codehaus.org/geoserver/trunk geoserver使用以下方式取出稳定版/stable 版本:svn co http:/svn.codehaus.org/geoserver/branches/1.7.x geoserver警告:Geoserver 库包含大量空间数据。从上取出这些数据对于低带宽用户来说相对就很慢或者很昂贵,这种情况下,用户可以通过以下方式仅获取源代码:svn co http:/svn.codehaus.org/
4、geoserver/trunk/src提交通过以下步骤提交到代码库:1. 安装 subversion配置文件,请看后面备注。2. 注册获取提交权限。3. 将库切换到”https”协议,例如:root of checkout% svn switch https:/svn.codehaus.org/geoserver/trunk库结构http:/svn.codehaus.org/geoserver/branches/spike/tags/trunk/branches包含以前所有稳定的开发分支,1.6.x,1.7.x,etcspike包含实验版本和原型tags包含以前所有释放版本trunk为当前开发
5、分支。分支结构每个开发分支都有如下所示的结构:http:/svn.codehaus.org/geoserver/doc/src/data/l doc包含用户和开发人员向导的源文件l src包含 Geoserver本身的 Java源码l data包含多种 GeoServer的数据目录三快速入门本章介绍快速搭建、运行 GeoServer 开发环境具体步骤。我们假定您已经安装好所有必须的工具(内容见第二章)。注:本章的上的是为了尽快的让开发者搭建和运行 GeoServer。对于一些更加深入的介绍请见 Maven 指南和 Eclipse 指南。取出源代码由 Maven 构建由 Maven 生成 Ecl
6、ipse 工程文件导入模块进 Eclipse在 Eclipse 里运行 GeoServer访问 GeoServer 首页取出源代码由 subversion 库中取出源代码。选取 trunk 作为最新开发源码,或者那些基本不可能经常更新的版本的稳定分支。要么是:svn co https:/svn.codehaus.org/geoserver/trunk geoserver-trunk 或者(稳定的 1.7.x 分支)svn co https:/svn.codehaus.org/geoserver/branches/1.7.x geoserver-1.7.x 在这页示例里面,我们假定你取出源码到一
7、个名为 geoserver 的目录,不过,最好还是把名字取得更详细一点为好。由 Maven 构建修改目录到源树的根,执行以下 maven 构建命令:cd geoserver/srcmvn clean install 成功构建后会产生类似于以下的输出:INFOINFOINFO -INFO Reactor Summary:INFO -INFO GeoServer . SUCCESS 10.271sINFO GeoServer Maven Plugins . SUCCESS 0.865sINFO Configuration Deployment PlugIn . SUCCESS 3.820sINFO
8、 GeoServer Maven Archetypes . SUCCESS 0.054sINFO GeoServer WFS Output Format Archetype . SUCCESS 0.390sINFO Core Platform Module . SUCCESS 5.270sINFO Data Module . SUCCESS 4.521sINFO Open Web Service Module . SUCCESS 2.730sINFO Main Module . SUCCESS 10.077sINFO Web Coverage Service Module . SUCCESS
9、3.785sINFO Web Coverage Service 1.1.1 Module . SUCCESS 5.254sINFO Validation Module . SUCCESS 1.131sINFO Web Feature Service Module . SUCCESS 6.695sINFO Web Feature Service Module . SUCCESS 1.197sINFO Web Map Service Module . SUCCESS 8.519sINFO Geoserver REST Support Code . SUCCESS 3.366sINFO GeoWeb
10、Cache (GWC) Module . SUCCESS 0.255sINFO Web Application Module . SUCCESS 27.386sINFO Community Space . SUCCESS 0.312sINFO GeoServer Extensions . SUCCESS 0.071sINFO -INFO -INFO BUILD SUCCESSFULINFO -由 Maven 生成 Eclipse 工程文件生成 Eclipse 使用的.project 文件和.classpath 文件:mvn eclipse:eclipse 导入模块进 Eclipse1.启动运行
11、 Eclipse 集成开发环境2.打开 Eclipse 首选项 Preferences3.依次点击进入:Java,BuildPath,Classpath Variables,点击 New4.创建类路径变量名称”M2_REPO”, 并且设置它的值为本地 Maven 库的位置,点击 OK。5.单击 OK 以应用新的 Eclipse 首选项。6.在包浏览 Package Explorer 右键并单击导入 Import7.选择已有工程导入工作区 Existing Projects into Workspace,单击下一步:8.进入 geoserver/src 目录9.确保所有模块都被选取,单击完成 F
12、inish在 Eclipse 中运行 GeoServer1.在包浏览 Package Explorer 中选择 web-app 模块(1.7.x 或更早版本是 web)2.点击进入 org.geoserver.web 包(1.7.x 或更早版本是 org.vfny.geoserver.jetty)3.在 Start 类上右键,单击 Run as, Java Application访问 GeoServer 首页几秒后,就可通过 http:/localhost:8080/geoserver 访问到 GeoServer默认的用户 admin 的密码是 geoserver四Maven 指南本章是使用
13、Maven 构建 GeoServer 的参考。安装 Maven见工具(第二章)运行 MavenMaven 提供了从模块编译到生成测试覆盖报告的多种命令。大部分 maven 命令可在源树的根运行,或者某个特模块。注:在准备由源树的根运行 maven 命令时,请记住要将取出的根目录变换到 src 目录。在由源树的根运行一个命令时,或者从包含其它模块的目录时,命令将会为所有模块运行。当从单个模块运行命令时,它只为这个模块运行。构建 GeoServer 最常用的命令是安装命令:mvn clean install虽然 clean 命令不是必须的,但我们还是推荐用上。上面的命令做了以下的事:编译源代码运行
14、单元测试安装成果到本地 Maven 库跳过测试通常在构建时跳过单元测试很有用处。在构建命令中添加-DskipTests 标志就可以只编译单元测试而不会运行测试。mvn -DskipTests clean install离线构建 Maven 操作会自动下载待构建模块中声明的依赖库。当处理快照(SNAPSHOT)依赖时,这就有可能会有问题。Maven 每次执行一天内的首次构建时,会尝试更新它的快照依赖。由于 GeoServer 依赖 GeoTools 库的快照版本,这时可能会有问题。最终导致 Maven 下载大量 GeoTools 更新模块并且急剧增加构建时间。而如果你只是本地构建 geotool
15、s,这些就显得不必要了。这时,可以使用“离线”方式运行 Maven 来改进:mvn -o clean install在离线模式中,Maven 不会下载任何外部依赖,也不会更新任何快照依赖。构建扩展默认情况下,扩展没有被包含在构建中。它们得通过 Profile 来明确增加到构建中。比如下面的示例就将 restconfig扩展添加到构建中:mvn clean install -P restconfig可以同时添加多个扩展同时使用:mvn clean install -P restconfig,oracle有个特殊的名为 allExtensions的 Profile可以添加所有扩展:mvn clea
16、n install -P allExtensionsProfilesEclipseMaven 的Eclipse 插件用于为模块生成 eclipse 工程:mvn eclipse:eclipse经过此操作后,这些模块就可以导入 Eclipse 工作区。该插件有个很有用的功能就是可下载第三方依赖的相关源代码。这是通过添加downloadSources标志来做的:mvn -DdownloadSources eclipse:eclipse警告:当你首次启用 downloadSources 标志时,构建过程需要很长时间,因为它要下载 GeoServer 所依赖的每个库的源代码。构建 Web模块当安装好
17、web 模块后,它会通过内建的特殊配置构建。默认情况下它注是minimal配置。尽管如此,它也可以通过设置 configId和 configDirectory标志来定制任意配置。比如:mvn clean install -DconfigId=release -DconfigDirectory=/home/jdeolive/geoserver_1.7.x/data上面命令可使用 GeoServer上的 release 配置构建 web 模块。configId 是包含的配置目录名称,configDirectory 是包含的配置目录的父级目录。configDirectory 可以像刚才的一样的绝对路
18、径,也可以是针对web 模块自身的相对路径:mvn clean install -DconfigId=release -DconfigDirectory=./././data上面的命令与之前有同样的效果,尽管是引用了相对于 web 模块的路径。该路径,./././data,在 GeoServer 取出(check out)的代码目录结构是标准结构的情况下可用。使用 Jetty运行 web模块 Maven 的 jetty 插件可用于运行嵌入了 jetty 容器的基于 web 的模块:cd geoserver_1.7.x/src/webmvn jetty:run注:该命令必须从 web 模块运行,
19、如果从其它模块运行就会失败。上面的命令将会使用自带的数据目录来运行 GeoServer。为了使用其它的数据目录可以启用 GEOSERVER_DATA_DIR 标志:mvn -DGEOSERVER_DATA_DIR=/path/to/datadir jetty:run五Eclipse 指南本章是使用 Eclipse 开发 GeoServer 的参考。导入模块运行和调试设置数据目录更改 Jetty 默认端口配置 Jetty 中 JNDI 资源Eclipse 首选项代码格式化代码模块文本编辑器编译器导入模块参见 Maven指南中的 Eclipse 部分。运行和调试运行和调试 web-app 模块中 org.geoserver.web.Start 类。具体步骤见快速入门。设置数据目录如果未设置,GeoServer 默认会使用 web-app 模块里的 minimal 目录作为它的数据目录。若要修改,执行以下步骤:1.在 Eclipse 菜单中打开调试配置(Debug Configurations)2.先把 Start 配置,选择 Argument 面板,并且填写-DGEOSERVER_DATA_DIR 参数,设置数据目录为绝对路径。