-
Maven簡單介紹
Apache Maven是個項目管理和自動構建工具,基於項目對象模型(POM)的概念。
作用:完成項目的相關操作,如:編譯,構建,單元測試,安裝,網站生成和基於Maven部署項目。 -
什麼是自動構建工具?
2.1 .java->.class->run
方式一
javac HelloWorld.java
java HelloWorld方式二
開發工具Eclipse
2.2 如何創建一個struts2的WEB項目(全手動添加相關jar包,還要設置構建路徑)
-
常用的自動構建工具
ant
maven
Gradle android項目管理和構建已使用 -
Maven安裝與配置
4.1 下載maven安裝包,解壓即可使用
http://maven.apache.org/download.cgi
4.2 配置maven環境變量
4.2.1 MAVEN_HOME
4.2.2 M2_HOME
4.2.3 修改path添加maven相關路徑
配置方式跟jdk有些類似,環境變量MAVEN_HOME和M2_HOME的值爲maven的根目錄、
然後在PATH環境變量里加入“%MAVEN_HOME%\bin;%M2_HOME%\bin;”即可
4.3 驗證
doc窗口執行命令“mvn –version”
技術棧架構
4.4 修改“MAVEN_HOME\config”下的setting.xml文件,配置本地倉庫。注意是:“E:/”而非“E:\”
例如:E:/mvn-repository
注1:標籤在setting.xml文件的53行
注2:倉庫的作用就是用來存放jar包的
注3:倉庫的分類
中央倉庫
公司倉庫(也叫私人倉庫或私服)
本地倉庫
中央倉庫(http://search.maven.org/,但一般使用另外一個網站:http://www.mvnrepository.com/)
公司倉庫
本地倉庫
公司裏面還會有一個大倉庫(本地)全公司使用
本地倉庫程序員自己使用,私服全公司使用,中央倉庫所有人用
注4:jar的查找順序:本地倉庫->私服->中央倉庫
注5:換源“阿里雲”
4.5 maven插件安裝與配置
注1:eclipse4.0以上已經安裝好了,無需額外配置
注2:設置maven安裝路徑
Installations
注3:指定setting.xml文件
User Settings
Maven用戶可以選擇配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml,前者是全局範圍的,
整臺機器上的所有用戶都會直接受到該配置的影響,而後者是用戶範圍的,只有當前用戶纔會受到該配置的影響。
推薦使用用戶範圍的setting.xml,主要是爲了避免無意識地影響到系統中的其他用戶,
而且爲了以後maven升級的方便,直接把配置文件從倉庫拷過去就可以了。
-
Maven的使用1:創建java項目
Maven project
maven-archetype-quickstartgroup id:組織id,一般就是公司域名反寫
artifact id:項目名字
version:版本
package:java包名src/main(源代碼)
src/test(測試代碼)
target
編譯後、打包後的文件 -
Maven的使用2:創建web項目
Maven project
maven-archetype-webapp注1:加入servlet api,不然報錯
注2:修改Project Facets
web2.3->web2.5 jdk1.5->jdk1.8注3:添加的配置archetypeCatalog=internal可加快項目創建速度
archetypeCatalog用來指定maven-archetype-plugin讀取archetype-catalog.xml文件的位置:
internal——maven-archetype-plugin內置的
local——本地的,位置爲~/.m2/archetype-catalog.xml
remote——指向Maven中央倉庫的Catalog -
maven打包
maven install -
什麼是POM
junit junit 3.8.1 test
Project Object Model,項目對象模型。
通過xml格式保存的pom.xml文件。作用類似ant的build.xml文件,功能更強大。
該文件用於管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目授權、項目的url、項目的依賴關係等等。
最後,根據你的項目需要更新您的pom.xmlstruts2 pom.xml
在POM 4中,中還引入了,它主要管理依賴的部署。目前可以使用5個值:
- compile,缺省值,適用於所有階段,會隨着項目一起發佈。
- provided,類似compile,期望JDK、容器或使用者會提供這個依賴。如servlet.jar。
- runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。
- test,只在測試時使用,用於編譯和運行測試代碼。不會隨項目發佈。
- system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它。
作業
-
使用maven給WEB項目添加
struts2依賴
mysql依賴用戶登陸+mysql數據庫
-
組長搭建一個私服(選做)
nexus 阿里巴巴什麼需要私服
如果沒有私服,我們所需的所有構件都需要通過maven的中央倉庫和第三方的Maven倉庫下載到本地,
而一個團隊中的所有人都重複的從maven倉庫下載構件無疑加大了倉庫的負載和浪費了外網帶寬,如果網速慢的話,
還會影響項目的進程。很多情況下項目的開發都是在內網進行的,連接不到maven倉庫怎麼辦呢?
開發的公共構件怎麼讓其它項目使用?這個時候我們不得不爲自己的團隊搭建屬於自己的maven私服,
這樣既節省了網絡帶寬也會加速項目搭建的進程,當然前提條件就是你的私服中擁有項目所需的所有構件
1、環境搭建
2、eclipse集成maven
3、setting文件的理解
4、用maven玩下struts
5、檢驗jar導入成功
注意事項
-
jar下載失敗
1.1 last…
1.2 根據座標直接刪除 -
修改pom後報配置未生效
clear project
maven->update project -
web項目屬性設置
3.1 缺少servlet依賴
3.2 Project Facetsweb2.3->web2.5
jdk1.5->jdk1.8 -
eclipse優化
Validation
classpath… -
tomcat優化
4.1 熱加載(debug)
4.2 超時時間