鍍金池/ 教程/ Java/ Maven Web應(yīng)用
使用Maven構(gòu)建項(xiàng)目
定制庫(kù)到Maven本地資源庫(kù)
Maven安裝配置
Maven依賴(lài)管理
使用Maven創(chuàng)建Web應(yīng)用程序項(xiàng)目
Maven項(xiàng)目文檔
Maven存儲(chǔ)庫(kù)
使用Maven創(chuàng)建Java項(xiàng)目
Maven Web應(yīng)用
Maven創(chuàng)建Java項(xiàng)目
部署基于Maven的war文件到Tomcat
定制庫(kù)到Maven本地資源庫(kù)
Maven POM
Maven啟用代理訪問(wèn)
轉(zhuǎn)換基于Maven的Java項(xiàng)目支持Eclipse IDE
Maven本地資源庫(kù)
Maven項(xiàng)目模板
Maven添加遠(yuǎn)程倉(cāng)庫(kù)
如何從Maven遠(yuǎn)程存儲(chǔ)庫(kù)下載?
Maven插件
Maven依賴(lài)機(jī)制
Maven 構(gòu)建生命周期
將項(xiàng)目安裝到Maven本地資源庫(kù)
使用Maven模板創(chuàng)建項(xiàng)目
Maven構(gòu)建自動(dòng)化
Maven中央存儲(chǔ)庫(kù)
Eclipse創(chuàng)建一個(gè)Maven Web項(xiàng)目
部署基于Maven的war文件到Tomcat
使用Maven運(yùn)行單元測(cè)試
轉(zhuǎn)換基于Maven的Java項(xiàng)目支持Eclipse IDE
轉(zhuǎn)換基于Maven的Web應(yīng)用程序支持Eclipse IDE
NetBeans IDE集成Maven
Maven中央存儲(chǔ)庫(kù)
使用Maven清理項(xiàng)目
使用Maven構(gòu)建和測(cè)試Java項(xiàng)目
Maven本地資源庫(kù)
Maven依賴(lài)機(jī)制
使用Maven創(chuàng)建Web應(yīng)用程序項(xiàng)目
使用“mvn site-deploy”部署站點(diǎn)(WebDAV例子)
Maven快照
使用Maven構(gòu)建項(xiàng)目
Maven教程
Maven POM
生成基于Maven的項(xiàng)目文檔站點(diǎn)
使用Maven運(yùn)行單元測(cè)試
Maven 構(gòu)建配置文件
Maven外部依賴(lài)
將項(xiàng)目安裝到Maven本地資源庫(kù)
Eclipse構(gòu)建Maven項(xiàng)目
啟用Maven的代理訪問(wèn)
生成基于Maven的項(xiàng)目文檔站點(diǎn)
使用Maven創(chuàng)建Java項(xiàng)目
使用“mvn site-deploy”部署站點(diǎn)(WebDAV例子)
使用Maven模板創(chuàng)建項(xiàng)目
如何從Maven遠(yuǎn)程存儲(chǔ)庫(kù)下載?
使用Maven清理項(xiàng)目
Eclispe IDE集成Maven
Maven自動(dòng)化部署
轉(zhuǎn)換基于Maven的Web應(yīng)用程序支持Eclipse IDE

Maven Web應(yīng)用

本教程將教你如何管理使用Maven版本控制系統(tǒng)管理一個(gè)基于Web項(xiàng)目。在這里,將學(xué)習(xí)如何創(chuàng)建/構(gòu)建/部署和運(yùn)行Web應(yīng)用程序:

創(chuàng)建Web應(yīng)用程序

要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的java web應(yīng)用程序,我們將使用Maven的原型 - web應(yīng)用插件。因此,讓我們打開(kāi)命令控制臺(tái),進(jìn)入到C: MVN目錄并執(zhí)行以下命令mvn命令。

C:MVN>mvn archetype:generate 
-DgroupId=com.companyname.automobile 
-DartifactId=trucks
-DarchetypeArtifactId=maven-archetype-webapp 
-DinteractiveMode=false

Maven會(huì)開(kāi)始處理,并建立完整的基于Web的Java應(yīng)用程序項(xiàng)目結(jié)構(gòu)。

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] -------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:generate] (aggregator-style)
[INFO] -------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Batch mode
[INFO] --------------------------------------------------------------------
[INFO] Using following parameters for creating project 
from Old (1.x) Archetype: maven-archetype-webapp:1.0
[INFO] --------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.companyname.automobile
[INFO] Parameter: packageName, Value: com.companyname.automobile
[INFO] Parameter: package, Value: com.companyname.automobile
[INFO] Parameter: artifactId, Value: trucks
[INFO] Parameter: basedir, Value: C:MVN
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: C:MVN	rucks
[INFO] -------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] -------------------------------------------------------------------
[INFO] Total time: 16 seconds
[INFO] Finished at: Tue Jul 17 11:00:00 IST 2012
[INFO] Final Memory: 20M/89M
[INFO] -------------------------------------------------------------------

現(xiàn)在去到C:/ MVN目錄。您將看到創(chuàng)建了一個(gè)名為trucks (如artifactId指定)一個(gè)java應(yīng)用程序項(xiàng)目。

Java web application project structure

Maven使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu)。用上面的例子中,我們可以了解到以下關(guān)鍵概念

文件夾結(jié)構(gòu) 描述
trucks contains src folder and pom.xml
src/main/webapp contains index.jsp and WEB-INF folder.
src/main/webapp/WEB-INF contains web.xml
src/main/resources it contains images/properties files .

POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.automobile</groupId>
   <artifactId>trucks</artifactId>
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>trucks Maven Webapp</name>
   <url>http://maven.apache.org</url>
   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>
   </dependencies>
   <build>
      <finalName>trucks</finalName>
   </build>
</project>

Maven還創(chuàng)建了一個(gè)示例JSP源文件

打開(kāi) C: > MVN > trucks > src > main > webapp > 文件夾,你會(huì)看到index.jsp。

<html>
   <body>
      <h2>Hello World!</h2>
   </body>
</html>

構(gòu)建Web應(yīng)用程序

讓我們打開(kāi)命令控制臺(tái),進(jìn)入到C:MVN rucks目錄并執(zhí)行以下命令mvn命令。

C:MVN	rucks>mvn clean package

Maven將開(kāi)始建設(shè)該項(xiàng)目。

[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------
[INFO] Building trucks Maven Webapp
[INFO]    task-segment: [clean, package]
[INFO] -------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to 
copy filtered resources,i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (Cp1252 actually) to 
copy filtered resources,i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory 
C:MVN	ruckssrc	estesources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] No tests to run.
[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[INFO] Assembling webapp[trucks] in [C:MVN	rucks	arget	rucks]
[INFO] Processing war project
[INFO] Copying webapp resources[C:MVN	ruckssrcmainwebapp]
[INFO] Webapp assembled in[77 msecs]
[INFO] Building war: C:MVN	rucks	arget	rucks.war
[INFO] -------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] -------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Tue Jul 17 11:22:45 IST 2012
[INFO] Final Memory: 11M/85M
[INFO] -------------------------------------------------------------------

部署Web應(yīng)用程序

現(xiàn)在復(fù)制創(chuàng)建的trucks.war 到C: > MVN > trucks > target >文件夾到web服務(wù)器的webapp目錄下,然后重新啟動(dòng)Web服務(wù)器。

測(cè)試Web應(yīng)用程序

使用URL運(yùn)行Web應(yīng)用程序 : http://<server-name>:<port-number>/trucks/index.jsp

驗(yàn)證輸出。

web page