1. 程式人生 > >Java開發工程師(Web方向) - 01.Java Web開發入門 - 第4章.Maven

Java開發工程師(Web方向) - 01.Java Web開發入門 - 第4章.Maven

編譯器 靜態資源 重復 mvn clean art servle 技術 工具 環境

第4章--Maven

Maven實戰

Java Web應用的部署:

手動式:

編譯:javac -cp $CATALINA_HOME/lib/servlet-api.jar web-inf/classes/package/NoodlesServlet.java

打包:jar cvf Restaurant.war .

移動:mv Restaurant.war .../webapps/

項目復雜時:比如項目文件很多 -- IDE如eclipse -->

IDE式:(如eclipse)

下載第三方依賴包,去哪裏下載?

目錄結構怎麽定?

編譯、測試、打包、發行,構建流程怎麽統一?

項目代碼共享和依賴,怎麽做?

版本如何管理?

--> 常用工具解決以上問題

Maven:

Java Web的項目構建和依賴管理工具

Apache基金會,開源,由Java寫的

選擇Maven的理由:

默認對於目錄結構進行了限定(約定/慣例優先原則)

提供了三方依賴的管理--解決了依賴的維護問題

提供了一致的項目構建管理方式--減少了構建工作量,降低學習成本

插件式的架構,大量可重用插件

很方便集成了IDE

Maven的安裝:

依賴JDK

官網:http://maven.apache.org/

$ brew install maven3

配置環境變量:

M2_HOME=/dir to maven/

PATH=$PATH:$M2_HOME/bin

Maven在構建項目的時候使用的配置:pom.xml

技術分享

Maven項目的坐標:定位唯一項目(不可重復)

groupId:組織

artifactId:項目標識符

version:版本號(i.e. <version>1.0.0-SNAPSHOT</version>) (SNAPSHOT表示為開發版本)

其他屬性:

packaging:類型,i.e. war

dependencies:依賴的項目

基本命令:

mvn archetype:generate:使用模板生成項目

mvn compile:編譯

mvn test:單元測試

mvn package:打包War

mvn deploy:部署

mvn site:生成項目相關站點,在線文檔之類

mvn clean:清理

mvn install:把包安裝到本地倉庫,可對其進行依賴

Tomcat插件:Tomcat官方提供的Maven插件:實現在Maven中內嵌啟動一個Tomcat

mvn help:describe -Dplugin=tomcat7

常見命令:

mvn tomcat7:run:啟動一個嵌入的Tomcat實例

mvn tomcat7:deploy;mvn tomcat7:undeploy等

如何使用Maven管理Tomcat項目:

mkdir 創建目錄

mvn archetype:generate -DgroupId=com.netease.restaurant -DartifactId=Restaurant -Dpackage=com.netease -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp 創建項目

技術分享

生成的目錄結構:

技術分享

生成pom.xml:

技術分享

缺少對servlet的依賴:在<dependencies></dependencies>中添加依賴

技術分享

配置插件:編譯器的插件和tomcat插件

技術分享

在main下建立java/com/netease文件夾,並把上節課的Java文件拷貝到該文件夾下

拷貝靜態資源到webapp文件夾下

替換WEB-INF下的web.xml為上節課寫的web.xml

刪除webapp下的index.jsp

技術分享

運行項目:(註意,在Restaurant目錄下運行,否則報錯)

技術分享

mvn tomcat7:run

and it is running

技術分享

open another terminal tab and curl http://localhost:8080/Restaurant/noodles;it works.

Java開發工程師(Web方向) - 01.Java Web開發入門 - 第4章.Maven