版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./geoserver中文开发手册一.目录目录写在前面一介绍二工具JavaMavenSubversion三源代码源代码提交库结构分支结构四快速入门取出源代码由Maven构建由Maven生成Eclipse工程文件导入模块进Eclipse在Eclipse中运行GeoServer访问GeoServer首页五
Maven指南六
Eclipse指南七编程指南八释放指南九释放测试检查列表十
CITE测试指南十一政策与步骤二.介绍、工具、源代码三章一介绍空。二工具在GeoServer开发者环境搭建以前,需要安装以下工具:JavaGeoServer开发需要JDK1.5及其以上版本,可从SunMicrosystems获取。注:除了可以使用Sun提供的JDK以外,也可以使用其它的,但这里我们推荐使用Sun的。MavenGeoserver使用Maven工具构建。当前推荐版本是,可从Apache获取。虽然是推荐的,但以上版本同样可用。SubversionGeoserver源代码由subversion库完成存储和版本管理。对于不同平台有多种subversion客户端可获取。更多细节请访问:。三源代码源代码GeoServer源代码存放在:
。使用以下方式取出开发版/trunk版本使用以下方式取出稳定版/stable版本:警告:Geoserver库包含大量空间数据。从上取出这些数据对于低带宽用户来说相对就很慢或者很昂贵,这种情况下,用户可以通过以下方式仅获取源代码:提交通过以下步骤提交到代码库:1.
安装subversion配置文件,请看后面备注。2.
注册获取提交权限。3.
将库切换到"https"协议,例如:库结构
branches/
spike/
tags/
trunk/
branches包含以前所有稳定的开发分支,,,etc…
spike包含实验版本和原型
tags包含以前所有释放版本
trunk为当前开发分支。分支结构每个开发分支都有如下所示的结构:
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
geoserver-trunk或者〔稳定的分支
svn
co
在这页示例里面,我们假定你取出源码到一个名为geoserver的目录,不过,最好还是把名字取得更详细一点为好。由Maven构建修改目录到源树的根,执行以下maven构建命令:
cd
geoserver/srcmvn
clean
install成功构建后会产生类似于以下的输出:
[INFO]
[INFO]
[INFO]
[INFO]
Reactor
Summary:
[INFO]
[INFO]
GeoServer
SUCCESS
[10.271s]
[INFO]
GeoServer
Maven
Plugins
SUCCESS
[0.865s]
[INFO]
Configuration
Deployment
PlugIn
SUCCESS
[3.820s]
[INFO]
GeoServer
Maven
Archetypes
SUCCESS
[0.054s]
[INFO]
GeoServer
WFS
Output
Format
Archetype
SUCCESS
[0.390s]
[INFO]
Core
Platform
Module
SUCCESS
[5.270s]
[INFO]
Data
Module
SUCCESS
[4.521s]
[INFO]
Open
Web
Service
Module
SUCCESS
[2.730s]
[INFO]
Main
Module
SUCCESS
[10.077s]
[INFO]
Web
Coverage
Service
Module
SUCCESS
[3.785s]
[INFO]
Web
Coverage
Service
1.1.1
Module
SUCCESS
[5.254s]
[INFO]
Validation
Module
SUCCESS
[1.131s]
[INFO]
Web
Feature
Service
Module
SUCCESS
[6.695s]
[INFO]
Web
Feature
Service
Module
SUCCESS
[1.197s]
[INFO]
Web
Map
Service
Module
SUCCESS
[8.519s]
[INFO]
Geoserver
REST
Support
Code
SUCCESS
[3.366s]
[INFO]
GeoWebCache
<GWC>
Module
SUCCESS
[0.255s]
[INFO]
Web
Application
Module
SUCCESS
[27.386s]
[INFO]
Community
Space
SUCCESS
[0.312s]
[INFO]
GeoServer
Extensions
SUCCESS
[0.071s]
[INFO]
[INFO]
[INFO]
BUILD
SUCCESSFUL
[INFO]
由Maven生成Eclipse工程文件生成Eclipse使用的.project文件和.classpath文件:
mvn
eclipse:eclipse导入模块进Eclipse1.
启动运行Eclipse集成开发环境2.
打开Eclipse首选项Preferences
3.
依次点击进入:Java,BuildPath,Classpath
Variables,点击New
4.
创建类路径变量名称"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模块〔或更早版本是web2.
点击进入包〔或更早版本是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
restconfig,oracle有个特殊的名为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
-DconfigId=release
-DconfigDirectory=/home/jdeolive/geoserver_1.7.x/data上面命令可使用GeoServer上的release配置构建web模块。configId是包含的配置目录名称,configDirectory是包含的配置目录的父级目录。configDirectory可以像刚才的一样的绝对路径,也可以是针对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模块运行,如果从其它模块运行就会失败。上面的命令将会使用自带的数据目录来运行GeoServer。为了使用其它的数据目录可以启用GEOSERVER_DATA_DIR标志:mvn
-DGEOSERVER_DATA_DIR=/path/to/datadir
jetty:run五.Eclipse指南本章是使用Eclipse开发GeoServer的参考。导入模块运行和调试设置数据目录更改Jetty默认端口配置Jetty中JNDI资源Eclipse首选项代码格式化代码模块文本编辑器编译器导入模块参见Maven指南中的Eclipse部分。运行和调试运行和调试web-app模块中类。具体步骤见快速入门。设置数据目录如果未设置,GeoServer默认会使用web-app模块里的minimal目录作为它的数据目录。若要修改,执行以下步骤:1.在Eclipse菜单中打开调试配置〔Debug
Configurations2.先把Start配置,选择Argument面板,并且填写-DGEOSERVER_DATA_DIR参数,设置数据目录为绝对路径。
更改Jetty默认端口如果未设置,Jetty默认会使用8080端口。修改请按以下方式:1.
打开上节所说的Start配置中的Argument面板。2.
填写-Djetty.port参数,设置它到期望的端口
配置Jetty的JNDI资源JNDI资源如数据资源可以通过提供系统属性中名为的Jetty服务器配置文件来配置,这个可以在Start配置中的Argument面板上通过VM
argument参数指定。配置文件路径是相对于web-app模块根路径的,该模块是启动配置运行的地方。例如:-Djetty.config.file=../../../../../settings/jetty.xml以下的Jetty服务器配置文件就配置了一个JNDI数据源:jdbc/demo,它是一个Oracle数据库的连接池。
jdbc/demo
jdbc:oracle:thin:@:1521:demodb
claudius
s3cr3t
20
10
0
10000
300000
300000
20
true
100
true
SELECT
SYSDATE
FROM
DUAL
Jetty没有在GeoServer的WEB-INF/web.xml指定reference-ref,因此没必要修改该文件。GeoServer
web-app模块和数据目录没有特定于Jetty的相关信息,因此JNDI资源可以被测试在Jetty下,以便于后面在Tomcat下的开发。也可以看看GeoServer用户手册中Tomcat中建立JNDI连接池章节。
Eclipse首选项代码格式化1.
下载文件:2.
转到首选项中Java,Code
Style,Formatter,点击Import…3.
选择步骤1中下载的formatter.xml文件。4.
点击Apply代码模板1.
下载文件:2.
转到首选项Java,Code
Style,
Formatter,点击Important…3.
选择步骤1中下载的formatter.xml文件。4.
点击Apply文本编辑器1.
转到General,Editors,Text
Editors2.
选中Insert
Space
for
tabs3.
选中Show
margin,将Printmargincolumn设置为100
4.
选中Showlinenumbers
5.
选中Showwhitespacecharacters〔可选注:显示空白字符可帮助我们发现无意中提交不必要的空格。6.
点击Apply编译器1.
转到Java,
Compiler,
Building
2.
扩展开Outputfolder,并将.svn/加到Filteredresources列表中。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文件。<?xml
version="1.0"
encoding="ISO-8859-1"?><project
xmlns="/POM/4.0.0"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0
/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--
set
parent
pom
to
community
pom
-->
<parent>
<groupId>org.geoserver</groupId>
<artifactId>community</artifactId>
<version>2.0.1</version>
</parent>
<groupId>org.geoserver</groupId>
<artifactId>hello</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>
Hello
World
Service
Module</name>
<dependencies>
<dependency>
<groupId>org.geoserver</groupId>
<artifactId>main</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>opengeo</id>
<name>opengeo</name>
<url></url>
</repository>
</repositories></project>复制代码3.在hello目录下创建Java源文件目录。hello/+pom.xml+src/+main/+java/创建插件插件是一系列由spring
beans实现的扩展。实例中扩展兴趣点是一个HelloWorld的POJO。1.创建一个名为HelloWorld的类:import
java.io.IOException;import
javax.servlet.ServletException;import
javax.servlet.http.HttpServletRequest;import
javax.servlet.http.HttpServletResponse;public
class
HelloWorld
{
public
HelloWorld<>
{
//
Do
nothing}
public
void
sayHello<HttpServletRequest
request,
HttpServletResponse
response>
throws
ServletException,
IOException
{
response.getOutputStream<>.write<
"Hello
World".getBytes<>
>;
}
}复制代码该服务相对比较简单。它提供了一个一个名为sayHello的方法,带有HttpServletRequest,HttpServletResponse参数。该函数的参数列表会由自动发现。2.创建applicationContext.xml文件将上面的类申明为一个bean。<?xml
version="1.0"
encoding="UTF-8"?><!DOCTYPE
beans
PUBLIC
"-//SPRING//DTD
BEAN//EN"
"/dtd/spring-beans.dtd"><beans>
<!--
Spring
will
reference
the
instance
of
the
HelloWorld
class
by
the
id
name
"helloService"
-->
<bean
id="helloService"
class="HelloWorld">
</bean>
<!--
This
creates
a
Service
descriptor,
which
allows
the
org.geoserver.ows.Dispatcher
to
locate
it.
-->
<bean
id="helloService-1.0.0"
class="org.geoserver.platform.Service">
<!--
used
to
reference
the
service
in
the
URL
-->
<constructor-arg
index="0"
value="hello"/>
<!--
our
actual
service
POJO
defined
previously
-->
<constructor-arg
index="1"
ref="helloService"/>
<!--
a
version
number
for
this
service
-->
<constructor-arg
index="2"
value="1.0.0"/>
<!--
a
list
of
functions
for
this
service
-->
<constructor-arg
index="3">
<list>
<value>sayHello</value>
</list>
</constructor-arg>
</bean></beans>复制代码到此,hello工程内容应该是看上去像下面这样了:hello/+pom.xml+src/+main/+java/+HelloWorld.java+applicationContext.xml试一试1.安装hello模块。[hello]%
mvn
install[hello]%
mvn
install[INFO]
Scanning
for
projects...[INFO]
[INFO]
Building
Hello
World
Service
Module[INFO]
task-segment:
[install][INFO]
[INFO]
[resources:resources][INFO]
Using
default
encoding
to
copy
filtered
resources.[INFO]
[compiler:compile][INFO]
Compiling
1
source
file
to
/home/ak/geoserver/community/hello/target/classes[INFO]
[resources:testResources][INFO]
Using
default
encoding
to
copy
fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 44859-2024武术太极剑
- GB/T 22750.1-2024外科植入物陶瓷材料第1部分:高纯氧化铝陶瓷材料
- GB/T 44700-2024国民体质测试器材通用要求
- 2024年度企业网络安全评估与提升合同
- 统编人教版六年级语文上册《语文园地六》精美课件
- 2024年度卫星导航与位置服务总承包合同2篇
- 民宿承包经营合同2
- 装潢材料购销合同范本
- 2024年度软件开发项目进度与质量保证合同2篇
- 2024版汽车制造公司与自动驾驶技术研发合同
- PLC未来发展趋势报告
- 教师法律法规讲座课件
- 高标准鱼塘方案
- 涉爆人员安全培训
- 井下掘进作业安全知识培训
- 德邦物流员工劳动合同
- 《关于早恋教育》主题班会上课版1
- 《旅客运输心理学》期末试题及答案
- 3D打印在脊柱肿瘤应用
- 六大茶类完整
- 2023年普法(学法用法)考试试卷题库一
评论
0/150
提交评论