【php精品源码栏目提醒】:网学会员--在 php精品源码编辑为广大网友搜集整理了:geoserver中文开发手册 - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
geoserver 中文开发手册一.目录目 录写在前面一 介绍二 工具JavaMavenSubversion三 源代码源代码提交库结构分支结构四 快速入门取出源代码由 Maven 构建由 Maven 生成 Eclipse 工程文件导入模块进 Eclipse在 Eclipse 中运行 GeoServer访问 GeoServer 首页五 Maven 指南六 Eclipse 指南七 编程指南八 释放指南九 释放测试检查列表十 CITE 测试指南十一 政策与步骤二.介绍、工具、源代码三章一 介绍空。
二 工具在 GeoServer 开发者环境搭建以前,需要安装以下工具:JavaGeoServer 开发需要 JDK1.5 及其以上版本,可从 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 源代码存放在: 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/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,etc… spike 包含实验版本和原型 tags 包含以前所有释放版本 trunk 为当前开发分支。
分支结构每个开发分支都有如下所示的结构:http://svn.codehaus.org/geoserver/ doc/ src/ data/l doc 包含用户和开发人员向导的源文件l src 包含 Geoserver 本身的 Java
源码l data 包含多种 GeoServer 的数据目录三.快速入门本章介绍快速搭建、运行 GeoServer 开发环境具体步骤。
我们假定您已经安装好所有必须的工具(内容见第二章)。
注:本章的上的是为了尽快的让开发者搭建和运行 GeoServer。
对于一些更加深入的介绍请见 Maven 指南和Eclipse 指南。
取出源代码由 Maven 构建由 Maven 生成 Eclipse 工程文件导入模块进 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 在这页示例里面,我们假定你取出
源码到一个名为 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 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 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 GeoWebCache 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.启动运行 Eclipse 集成开发环境2.打开 Eclipse 首选项 Preferences3.依次点击进入:Java,BuildPath,Classpath Variables,点击 New4.创建类路径变量名称”M2_REPO”并且设置它的值为本地 Maven 库的位置,点击 OK。
5.单击 OK 以应用新的 Eclipse 首选项。
6.在包浏览 Package Explorer 右键并单击导入 Import…7.选择已有工程导入工作区 Existing Projects into Workspace,单击下一步:8.进入 geoserver/src 目录9.确保所有模块都被选取,单击完成 Finish在 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 指南本章是使用 Maven 构建 GeoServer 的参考。
安装 Maven 见工具(第二章)运行 MavenMaven 提供了从模块编译到生成测试覆盖报告的多种命令。
大部分 maven 命令可在源树的根运行,或者某个特模块。
注:在准备由源树的根运行 maven 命令时,请记住要将取出的根目录变换到 src 目录。
在由源树的根运行一个命令时,或者从包含其它模块的目录时,命令将会为所有模块运行。
当从单个模块运行命令时,它只为这个模块运行。
构建 GeoServer 最常用的命令是安装命令:mvn clean install 虽然 clean 命令不是必须的,但我们还是推荐用上。
上面的命令做了以下的事:编译源代码运行单元测试安装成果到本地 Maven 库跳过测试通常在构建时跳过单元测试很有用处。
在构建命令中添加-DskipTests 标志就可以只编译单元测试而不会运行测试。
mvn -DskipTests clean install 离线构建 Maven 操作会自动下载待构建模块中声明的依赖库。
当处理快照(SNAPSHOT)依赖时,这就有可能会有问题。
Maven 每次执行一天内的首次构建时,会尝试更新它的快照依赖。
由于 GeoServer 依赖 GeoTools 库的快照版本,这时可能会有问题。
最终导致 Maven 下载大量 GeoTools 更新模块并且急剧增加构建时间。
而如果你只是本地构建 geotools,这些就显得不必要了。
这时,可以使用“离线”方式运行 Maven 来改进:mvn -o clean install 在离线模式中,Maven 不会下载任何外部依赖,也不会更新任何快照依赖。
构建扩展默认情况下,扩展没有被包含在构建中。
它们得通过 Profile 来明确增加到构建中。
比如下面的示例就将 restconfig 扩展添加到构建中:mvn clean install -P restconfig 可以同时添加多个扩展同时使用:mvn clean install -P restconfigoracle 有个特殊的名为 allExtensions 的 Profile 可以添加所有扩展:mvn clean install -P allExtensionsProfilesEclipseMaven 的Eclipse 插件用于为模块生成 eclipse 工程:mvn eclipse:eclipse 经过此操作后,这些模块就可以导入 Eclipse 工作区。
该插件有个很有用的功能就是可下载第三方依赖的相关源代码。
这是通过添加downloadSources 标志来做的:mvn -DdownloadSources eclipse:eclipse 警告:当你首次启用 downloadSources 标志时,构建过程需要很长时间,因为它要下载 GeoServer 所依赖的每个库的源代码。
构建 Web 模块当安装好 web 模块后,它会通过内建的特殊配置构建。
默认情况下它注是minimal 配置。
尽管如此,它也可以通过设置 configId 和 configDirectory 标志来定制任意配置。
比如:mvn clean install -DconfigIdrelease -DconfigDirectory/home/jdeolive/geoserver_1.7.x/data 上面命令可使用 GeoServer 上的 release 配置构建 web 模块。
configId 是包含的配置目录名称,configDirectory 是包含的配置目录的父级目录。
configDirectory 可以像刚才的一样的绝对路径,也可以是针对 web 模块自身的相对路径:mvn clean install -DconfigIdrelease -DconfigDirectory../../../data 上面的命令与之前有同样的效果,尽管是引用了相对于 web 模块的路径。
该路径,../../../data,在 GeoServer 取出check out的代码目录结构是标准结构的情况下可用。
使用 Jetty 运行 web 模块 Maven 的 jetty 插件可用于运行嵌入了 jetty 容器的基于 web 的模块:cd geoserver_1.7.x/src/webmvn jetty:run 注:该命令必须从 web 模块运行,如果从其它模块运行就会失败。
上面的命令将会使用自带的数据目录来运行 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 参数,设置数据目录为绝对路径。
更改 Jetty 默认端口如果未设置,Jetty 默认会使用 8080 端口。
修改请按以下方式:1.打开上节所说的 Start 配置中的 Argument 面板。
2.填写-Djetty.port 参数,设置它到期望的端口配置 Jetty 的 JNDI 资源 JNDI 资源如数据资源可以通过提供系统属性中名为jetty.config.file 的 Jetty 服务器配置文件来配置,这个可以在 Start 配置中的 Argument 面板上通过 VM argument 参数指定。
配置文件路径是相对于 web-app 模块根路径的,该模块是启动配置运行的地方。
例如:-Djetty.config.file../../../../../settings/jetty.xml 以下的 Jetty 服务器配置文件就配置了一个 JNDI 数据源:jdbc/demo,它是一个 Oracle 数据库的连接池。
jdbc/demo oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:oracle.example.com:1521:demodbclaudiuss3cr3t 2010 01000030000030000020true100trueSELECT SYSDATE FROM DUALJetty 没有在 GeoServer 的 WEB-INF/web.xml 指定 reference-ref,因此没必要修改该文件。
GeoServer web-app 模块和数据目录没有特定于 Jetty 的相关信息,因此 JNDI 资源可以被测试在 Jetty下,以便于后面在 Tomcat 下的开发。
也可以看看 GeoServer 用户手册中 Tomcat 中建立 JNDI 连接池章节。
Eclipse 首选项代码格式化 1.下载文件:http://svn.osgeo.org/geotools/trunk/build/eclipse/formatter.xml2.转到首选项中 Java,Code Style,Formatter,点击 Import…3.选择步骤 1 中下载的 formatter.xml 文件。
4.点击 Apply代码模板 1.下载文件:http://svn.osgeo.org/geotools/trunk/build/eclipse/codetemplates.xml2.转到首选项 Java,Code Style Formatter点击 Important…3.选择步骤 1 中下载的 formatter.xml 文件。
4.点击 Apply文本编辑器 1.转到 General,Editors,Text Editors2.选中 Insert Space for tabs3.选中 Show print margin,将 Print margin column 设置为 1004.选中 Show line numbers5.选中 Show whitespace characters(可选)注:显示空白字符可帮助我们发现无意中提交不必要的空格。
6.点击 Apply编译器 1.转到 Java Compiler Building2.扩展开 Output folder,并将.svn/加到 Filtered resources 列表中。
3.点击 Apply六.编程指南 OWS 服务本节介绍 GeoServer 中 OWS 服务(原文为 RESTful 服务,可能为笔误)如何工作。
OWS 服务概览 TBA实现一个简单的 OWS 服务本节将通过以下场景来介绍如何给 GeoServer 创建一个简单的 GeoServer OWS 服务。
该服务需要提供一个能广告叫做“sayHello”的单一操作的功能(capabilities)文档。
该 sayHello 操作的结果是一个简单的字符串:“Hello World”。
内容:实现一个简单的 OWS 服务建立创建插件试一试建立创建插件的第一步是为它建立一个 maven 工程。
该工程我们称为“hello”。
1.在本地文件系统中任意地方创建一个名为 hello 的新目录。
2.给 hello 目录添加名为 pom.xml 文件。
1. 2. ltxml versionquot1.0quot encodingquotISO-8859-1quotgt 3. ltproject xmlnsquothttp://maven.apache.org/POM/4.0.0quot xmlns:xsiquothttp://www.w3.org/2001/XMLSchema-insta ncequot xsi:schemaLocationquothttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd quotgt 4. ltmodelVersiongt4.0.0lt/modelVersiongt 5. lt-- set parent pom to community pom --gt 6. ltparentgt 7. ltgroupIdgtorg.geoserverlt/groupIdgt 8. ltartifactIdgtcommunitylt/artifactIdgt 9. ltversiongt2.0.1lt/versiongt 10. lt/parentgt 11. ltgroupIdgtorg.geoserverlt/groupIdgt 12. ltartifactIdgthellolt/artifactIdgt 13. ltpackaginggtjarlt/packaginggt 14. ltversiongt1.0lt/versiongt 15. ltnamegt Hello World Service Modulelt/namegt 16. ltdependenciesgt 17. ltdependencygt 18. ltgroupIdgtorg.geoserverlt/groupIdgt 19. ltartifactIdgtmainlt/artifactIdgt 20. ltversiongt2.0.1lt/versiongt 21. lt/dependencygt 22. lt/dependenciesgt 23. ltrepositoriesgt 24. ltrepositorygt 25. ltidgtopengeolt/idgt 26. ltnamegtopengeolt/namegt 27. lturlgthttp://repo.opengeo.orglt/urlgt 28. lt/repositorygt 29. lt/repositoriesgt 30. lt/projectgt复制代码3.在 hello 目录下创建 Java 源文件目录。
hello/ pom.xml src/ main/ java/创建插件插件是一系列由 spring beans 实现的扩展。
实例中扩展兴趣点是一个 HelloWorld 的 POJO。
1.创建一个名为 HelloWorld 的类: 1. import java.io.IOException 2. import javax.servlet.ServletException 3. import javax.servlet.http.HttpServletRequest 4. import javax.servlet.http.HttpServletResponse 5. public class HelloWorld 6. public HelloWorld 7. // Do nothing 8. 9. public void sayHelloHttpServletRequest request HttpServletResponse response 10. throws ServletException IOException 11. response.getOutputStream.write quotHello Worldquot.getBytes 12. 13. 复制代码该服务相对比较简单。
它提供了一个一个名为 sayHello 的方法,带有 HttpServletRequest,HttpServletResponse 参数。
该函数的参数列表会由 org.geoserver.ows.Dispatcher 自动发现。
2.创建 applicationContext.xml 文件将上面的类申明为一个 bean。
1. ltxml versionquot1.0quot encodingquotUTF-8quotgt 2. 3. ltDOCTYPE beans PUBLIC quot-//SPRING//DTD BEAN//ENquot quothttp://www.springframework.org/dtd/spring-beans.dt dquotgt 4. ltbeansgt 5. lt-- Spring will reference the instance of the HelloWorld class by the id name quothelloS ervicequot --gt 6. ltbean idquothelloServicequot classquotHelloWorldquotgt 7. lt/beangt 8. lt-- This creates a Service descriptor which allows the org.geoserver.ows.Dispatcher to locate it. --gt 9. ltbean idquothelloService-1.0.0quot classquotorg.geoserver.platform.Servicequotgt 10. lt-- used to reference the service in the URL --gt 11. ltconstructor-arg indexquot0quot valuequothelloquot/gt 12. lt-- our actual service POJO defined previously --gt 13. ltconstructor-arg indexquot1quot refquothelloServicequot/gt 14. lt-- a version number for this service --gt 15. ltconstructor-arg indexquot2quot valuequot1.0.0quot/gt 16. lt-- a list of functions for this service --gt 17. ltconstructor-arg indexquot3quotgt 18. ltlistgt 19. ltvaluegt 20. sayHellolt/valuegt 21. lt/listgt 22. lt/constructor-arggt 23. lt/beangt 24. lt/beansgt复制代码到此,hello 工程内容应该是看上去像下面这样了:hello/ pom.xml src/ main/ java/ HelloWorld.java applicationContext.xml试一试 1.安装 hello 模块。
1. hello mvn install 2. hello mvn install 3. INFO Scanning for projects... 4. INFO ---------------------------------------------------------------------------- 5. INFO Building Hello World Service Module 6. INFO task-segment: install 7. INFO ---------------------------------------------------------------------------- 8. INFO resources:resources 9. INFO Using default encoding to copy filtered resources. 10. INFO compiler:compile 11. INFO Compiling 1 source file to /home/ak/geoserver/communit.
上一篇:
毕业设计:网站程序+论文——梦之道影音工作室网站
下一篇:
法律专业开题报告范文