版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
./geoserver中文開發(fā)手冊一.目錄目錄寫在前面一介紹二工具JavaMavenSubversion三源代碼源代碼提交庫結(jié)構(gòu)分支結(jié)構(gòu)四快速入門取出源代碼由Maven構(gòu)建由Maven生成Eclipse工程文件導(dǎo)入模塊進(jìn)Eclipse在Eclipse中運(yùn)行GeoServer訪問GeoServer首頁五
Maven指南六
Eclipse指南七編程指南八釋放指南九釋放測試檢查列表十
CITE測試指南十一政策與步驟二.介紹、工具、源代碼三章一介紹空。二工具在GeoServer開發(fā)者環(huán)境搭建以前,需要安裝以下工具:JavaGeoServer開發(fā)需要JDK1.5及其以上版本,可從SunMicrosystems獲取。注:除了可以使用Sun提供的JDK以外,也可以使用其它的,但這里我們推薦使用Sun的。MavenGeoserver使用Maven工具構(gòu)建。當(dāng)前推薦版本是,可從Apache獲取。雖然是推薦的,但以上版本同樣可用。SubversionGeoserver源代碼由subversion庫完成存儲和版本管理。對于不同平臺有多種subversion客戶端可獲取。更多細(xì)節(jié)請訪問:。三源代碼源代碼GeoServer源代碼存放在:
。使用以下方式取出開發(fā)版/trunk版本使用以下方式取出穩(wěn)定版/stable版本:警告:Geoserver庫包含大量空間數(shù)據(jù)。從上取出這些數(shù)據(jù)對于低帶寬用戶來說相對就很慢或者很昂貴,這種情況下,用戶可以通過以下方式僅獲取源代碼:提交通過以下步驟提交到代碼庫:1.
安裝subversion配置文件,請看后面?zhèn)渥ⅰ?.
注冊獲取提交權(quán)限。3.
將庫切換到"https"協(xié)議,例如:庫結(jié)構(gòu)
branches/
spike/
tags/
trunk/
branches包含以前所有穩(wěn)定的開發(fā)分支,,,etc…
spike包含實(shí)驗(yàn)版本和原型
tags包含以前所有釋放版本
trunk為當(dāng)前開發(fā)分支。分支結(jié)構(gòu)每個開發(fā)分支都有如下所示的結(jié)構(gòu):
doc/
src/
data/l
doc包含用戶和開發(fā)人員向?qū)У脑次募
src包含Geoserver本身的Java源碼l
data包含多種GeoServer的數(shù)據(jù)目錄三.快速入門本章介紹快速搭建、運(yùn)行GeoServer開發(fā)環(huán)境具體步驟。我們假定您已經(jīng)安裝好所有必須的工具〔內(nèi)容見第二章。注:本章的上的是為了盡快的讓開發(fā)者搭建和運(yùn)行GeoServer。對于一些更加深入的介紹請見Maven指南和Eclipse指南。取出源代碼由Maven構(gòu)建由Maven生成Eclipse工程文件導(dǎo)入模塊進(jìn)Eclipse在Eclipse里運(yùn)行GeoServer訪問GeoServer首頁取出源代碼由subversion庫中取出源代碼。選取trunk作為最新開發(fā)源碼,或者那些基本不可能經(jīng)常更新的版本的穩(wěn)定分支。要么是:
svn
co
geoserver-trunk或者〔穩(wěn)定的分支
svn
co
在這頁示例里面,我們假定你取出源碼到一個名為geoserver的目錄,不過,最好還是把名字取得更詳細(xì)一點(diǎn)為好。由Maven構(gòu)建修改目錄到源樹的根,執(zhí)行以下maven構(gòu)建命令:
cd
geoserver/srcmvn
clean
install成功構(gòu)建后會產(chǎn)生類似于以下的輸出:
[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導(dǎo)入模塊進(jìn)Eclipse1.
啟動運(yùn)行Eclipse集成開發(fā)環(huán)境2.
打開Eclipse首選項(xiàng)Preferences
3.
依次點(diǎn)擊進(jìn)入:Java,BuildPath,Classpath
Variables,點(diǎn)擊New
4.
創(chuàng)建類路徑變量名稱"M2_REPO",并且設(shè)置它的值為本地Maven庫的位置,點(diǎn)擊OK。
5.
單擊OK以應(yīng)用新的Eclipse首選項(xiàng)。6.
在包瀏覽Package
Explorer右鍵并單擊導(dǎo)入Import…
7.
選擇已有工程導(dǎo)入工作區(qū)
Existing
Projects
into
Workspace,單擊下一步:
8.
進(jìn)入geoserver/src目錄9.
確保所有模塊都被選取,單擊完成Finish
在Eclipse中運(yùn)行GeoServer1.
在包瀏覽Package
Explorer中選擇web-app模塊〔或更早版本是web2.
點(diǎn)擊進(jìn)入包〔或更早版本是3.
在Start類上右鍵,單擊Run
as,
Java
Application
訪問GeoServer首頁幾秒后,就可通過http://localhost:8080/geoserver訪問到GeoServer默認(rèn)的用戶admin的密碼是geoserver四.Maven指南本章是使用Maven構(gòu)建GeoServer的參考。安裝Maven見工具〔第二章運(yùn)行MavenMaven提供了從模塊編譯到生成測試覆蓋報告的多種命令。大部分maven命令可在源樹的根運(yùn)行,或者某個特模塊。注:在準(zhǔn)備由源樹的根運(yùn)行maven命令時,請記住要將取出的根目錄變換到src目錄。在由源樹的根運(yùn)行一個命令時,或者從包含其它模塊的目錄時,命令將會為所有模塊運(yùn)行。當(dāng)從單個模塊運(yùn)行命令時,它只為這個模塊運(yùn)行。構(gòu)建GeoServer最常用的命令是安裝命令:mvn
clean
install雖然clean命令不是必須的,但我們還是推薦用上。上面的命令做了以下的事:編譯源代碼運(yùn)行單元測試安裝成果到本地Maven庫跳過測試通常在構(gòu)建時跳過單元測試很有用處。在構(gòu)建命令中添加-DskipTests標(biāo)志就可以只編譯單元測試而不會運(yùn)行測試。mvn
-DskipTests
clean
install離線構(gòu)建Maven操作會自動下載待構(gòu)建模塊中聲明的依賴庫。當(dāng)處理快照〔SNAPSHOT依賴時,這就有可能會有問題。Maven每次執(zhí)行一天內(nèi)的首次構(gòu)建時,會嘗試更新它的快照依賴。由于GeoServer依賴GeoTools庫的快照版本,這時可能會有問題。最終導(dǎo)致Maven下載大量GeoTools更新模塊并且急劇增加構(gòu)建時間。而如果你只是本地構(gòu)建geotools,這些就顯得不必要了。這時,可以使用"離線"方式運(yùn)行Maven來改進(jìn):mvn
-o
clean
install在離線模式中,Maven不會下載任何外部依賴,也不會更新任何快照依賴。構(gòu)建擴(kuò)展默認(rèn)情況下,擴(kuò)展沒有被包含在構(gòu)建中。它們得通過Profile來明確增加到構(gòu)建中。比如下面的示例就將restconfig擴(kuò)展添加到構(gòu)建中:mvn
clean
install
-P
restconfig可以同時添加多個擴(kuò)展同時使用:mvn
clean
install
-P
restconfig,oracle有個特殊的名為allExtensions的Profile可以添加所有擴(kuò)展:mvn
clean
install
-P
allExtensionsProfilesEclipseMaven的Eclipse插件用于為模塊生成eclipse工程:mvn
eclipse:eclipse經(jīng)過此操作后,這些模塊就可以導(dǎo)入Eclipse工作區(qū)。該插件有個很有用的功能就是可下載第三方依賴的相關(guān)源代碼。這是通過添加downloadSources標(biāo)志來做的:mvn
-DdownloadSources
eclipse:eclipse警告:當(dāng)你首次啟用downloadSources標(biāo)志時,構(gòu)建過程需要很長時間,因?yàn)樗螺dGeoServer所依賴的每個庫的源代碼。構(gòu)建Web模塊當(dāng)安裝好web模塊后,它會通過內(nèi)建的特殊配置構(gòu)建。默認(rèn)情況下它注是minimal配置。盡管如此,它也可以通過設(shè)置configId和configDirectory標(biāo)志來定制任意配置。比如:mvn
clean
install
-DconfigId=release
-DconfigDirectory=/home/jdeolive/geoserver_1.7.x/data上面命令可使用GeoServer上的release配置構(gòu)建web模塊。configId是包含的配置目錄名稱,configDirectory是包含的配置目錄的父級目錄。configDirectory可以像剛才的一樣的絕對路徑,也可以是針對web模塊自身的相對路徑:mvn
clean
install
-DconfigId=release
-DconfigDirectory=../../../data上面的命令與之前有同樣的效果,盡管是引用了相對于web模塊的路徑。該路徑,../../../data,在GeoServer取出<check
out>的代碼目錄結(jié)構(gòu)是標(biāo)準(zhǔn)結(jié)構(gòu)的情況下可用。使用Jetty運(yùn)行web模塊Maven的jetty插件可用于運(yùn)行嵌入了jetty容器的基于web的模塊:cd
geoserver_1.7.x/src/webmvn
jetty:run注:該命令必須從web模塊運(yùn)行,如果從其它模塊運(yùn)行就會失敗。上面的命令將會使用自帶的數(shù)據(jù)目錄來運(yùn)行GeoServer。為了使用其它的數(shù)據(jù)目錄可以啟用GEOSERVER_DATA_DIR標(biāo)志:mvn
-DGEOSERVER_DATA_DIR=/path/to/datadir
jetty:run五.Eclipse指南本章是使用Eclipse開發(fā)GeoServer的參考。導(dǎo)入模塊運(yùn)行和調(diào)試設(shè)置數(shù)據(jù)目錄更改Jetty默認(rèn)端口配置Jetty中JNDI資源Eclipse首選項(xiàng)代碼格式化代碼模塊文本編輯器編譯器導(dǎo)入模塊參見Maven指南中的Eclipse部分。運(yùn)行和調(diào)試運(yùn)行和調(diào)試web-app模塊中類。具體步驟見快速入門。設(shè)置數(shù)據(jù)目錄如果未設(shè)置,GeoServer默認(rèn)會使用web-app模塊里的minimal目錄作為它的數(shù)據(jù)目錄。若要修改,執(zhí)行以下步驟:1.在Eclipse菜單中打開調(diào)試配置〔Debug
Configurations2.先把Start配置,選擇Argument面板,并且填寫-DGEOSERVER_DATA_DIR參數(shù),設(shè)置數(shù)據(jù)目錄為絕對路徑。
更改Jetty默認(rèn)端口如果未設(shè)置,Jetty默認(rèn)會使用8080端口。修改請按以下方式:1.
打開上節(jié)所說的Start配置中的Argument面板。2.
填寫-Djetty.port參數(shù),設(shè)置它到期望的端口
配置Jetty的JNDI資源JNDI資源如數(shù)據(jù)資源可以通過提供系統(tǒng)屬性中名為的Jetty服務(wù)器配置文件來配置,這個可以在Start配置中的Argument面板上通過VM
argument參數(shù)指定。配置文件路徑是相對于web-app模塊根路徑的,該模塊是啟動配置運(yùn)行的地方。例如:-Djetty.config.file=../../../../../settings/jetty.xml以下的Jetty服務(wù)器配置文件就配置了一個JNDI數(shù)據(jù)源:jdbc/demo,它是一個Oracle數(shù)據(jù)庫的連接池。
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模塊和數(shù)據(jù)目錄沒有特定于Jetty的相關(guān)信息,因此JNDI資源可以被測試在Jetty下,以便于后面在Tomcat下的開發(fā)。也可以看看GeoServer用戶手冊中Tomcat中建立JNDI連接池章節(jié)。
Eclipse首選項(xiàng)代碼格式化1.
下載文件:2.
轉(zhuǎn)到首選項(xiàng)中Java,Code
Style,Formatter,點(diǎn)擊Import…3.
選擇步驟1中下載的formatter.xml文件。4.
點(diǎn)擊Apply代碼模板1.
下載文件:2.
轉(zhuǎn)到首選項(xiàng)Java,Code
Style,
Formatter,點(diǎn)擊Important…3.
選擇步驟1中下載的formatter.xml文件。4.
點(diǎn)擊Apply文本編輯器1.
轉(zhuǎn)到General,Editors,Text
Editors2.
選中Insert
Space
for
tabs3.
選中Show
margin,將Printmargincolumn設(shè)置為100
4.
選中Showlinenumbers
5.
選中Showwhitespacecharacters〔可選注:顯示空白字符可幫助我們發(fā)現(xiàn)無意中提交不必要的空格。6.
點(diǎn)擊Apply編譯器1.
轉(zhuǎn)到Java,
Compiler,
Building
2.
擴(kuò)展開Outputfolder,并將.svn/加到Filteredresources列表中。3.
點(diǎn)擊Apply六.編程指南OWS服務(wù)本節(jié)介紹GeoServer中OWS服務(wù)〔原文為RESTful服務(wù),可能為筆誤如何工作。OWS服務(wù)概覽TBA
實(shí)現(xiàn)一個簡單的OWS服務(wù)本節(jié)將通過以下場景來介紹如何給GeoServer創(chuàng)建一個簡單的GeoServer
OWS服務(wù)。該服務(wù)需要提供一個能廣告叫做"sayHello"的單一操作的功能〔capabilities文檔。該sayHello操作的結(jié)果是一個簡單的字符串:"Hello
World"。內(nèi)容:實(shí)現(xiàn)一個簡單的OWS服務(wù)建立創(chuàng)建插件試一試建立創(chuàng)建插件的第一步是為它建立一個maven工程。該工程我們稱為"hello"。1.
在本地文件系統(tǒng)中任意地方創(chuàng)建一個名為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>復(fù)制代碼3.在hello目錄下創(chuàng)建Java源文件目錄。hello/+pom.xml+src/+main/+java/創(chuàng)建插件插件是一系列由spring
beans實(shí)現(xiàn)的擴(kuò)展。實(shí)例中擴(kuò)展興趣點(diǎn)是一個HelloWorld的POJO。1.創(chuàng)建一個名為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<>
>;
}
}復(fù)制代碼該服務(wù)相對比較簡單。它提供了一個一個名為sayHello的方法,帶有HttpServletRequest,HttpServletResponse參數(shù)。該函數(shù)的參數(shù)列表會由自動發(fā)現(xiàn)。2.創(chuàng)建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>復(fù)制代碼到此,hello工程內(nèi)容應(yīng)該是看上去像下面這樣了: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)械課程設(shè)計圖紙
- 2024年種羊養(yǎng)殖技術(shù)聯(lián)合開發(fā)合同3篇
- 機(jī)電系統(tǒng)課程設(shè)計前言
- 房屋加固課課程設(shè)計
- 2024年度石灰石運(yùn)輸合同范本包含環(huán)保責(zé)任與處罰規(guī)定3篇
- 姚家河水工課程設(shè)計
- 智能運(yùn)輸系統(tǒng)課程設(shè)計
- 材料成型課程設(shè)計案例
- 場站規(guī)劃課程設(shè)計
- 托班粽子涂色課程設(shè)計
- 提高做群眾工作能力
- 一年一度喜劇大賽三板大斧子小品《反詐銀行》臺詞完整版
- 醫(yī)學(xué)倫理學(xué)(山東聯(lián)盟-濟(jì)寧醫(yī)學(xué)院)智慧樹知到期末考試答案2024年
- 譚軍業(yè)博士的學(xué)生邱安博士談人體使用基礎(chǔ)手冊
- DB11T 489-2024 建筑基坑支護(hù)技術(shù)規(guī)程
- 酒店物品藝術(shù)賞析智慧樹知到期末考試答案2024年
- 教育哲學(xué)智慧樹知到期末考試答案2024年
- 疼痛科護(hù)理年度工作計劃
- 第五章 中國特色社會主義理論體系的形成發(fā)展(一)
- 太陽能光伏發(fā)電系統(tǒng)最大功率點(diǎn)跟蹤技術(shù)研究
- 規(guī)章制度教案樣本
評論
0/150
提交評論