Java開發工程師(Web方向) - 01.Java Web開發入門 - 第4章.Maven
第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