maven課件
1 什麼是maven
Maven是一個跨平臺的項目管理工具,主要用於基於java平臺的項目構建,依賴管理。
如圖爲項目構建的過程。
解決的項目的問題:
1、 如果有好幾個項目,這好幾個項目中,需要用到很多相同的jar包,
能不能只建立一個倉庫來解決這個問題?
2、測試方法能不能全部運行呢?
3、怎麼樣把一個模塊的功能放入到倉庫中
2 Maven的安裝與配置
2.1 Maven的安裝
2.1.1 Jdk的情況
Jdk必須1.6以上的版本
2.1.2 從官網下載maven
從http://maven.apache.org/官網上下載最新版本的maven
2.1.3 設定path路徑
把下載下來的maven解壓縮,然後有一個bin文件夾,這是一個bin的文件夾的目錄
F:\work\course\maven\maven\bin
把該目錄追加到環境變量的path中。
2.1.4 利用命令行檢查是否成功
用mvn -v查看是否成功
有這個圖,說明maven安裝成功了。
2.2 建庫
2.2.1 先打開路徑
C:\Users\Think.m2
2.2.2 把settings.xml文件複製到上述的路徑中
F:\work\course\maven\apache-maven-3.0.5-bin\apache-maven-3.0.5\conf
有一個settings.xml文件,複製到C:\Users\Think.m2
2.2.3 修改settings.xml文件
F:/work/course/maven/mavenRepository/
指定倉庫的路徑
在這裏mavenRepository就是倉庫的路徑
2.3 Maven的配置
說明:
bin中存放可執行的二進制文件
conf存放settings.xml文件
lib 運行maven所依賴的jar包
2.4 maven的約定
src/main/java 存放項目的java文件
src/main/resources 存放項目的資源文件,如spring,hibernate的配置文件
src/test/java 存放所有的測試的java文件
src/test/resources 存放測試用的資源文件
target 項目輸出位置
pom.xml 文件
3 maven項目
3.1 hello項目
3.1.1 在myeclipse建立一個項目Hello
3.1.2 創建一個包cn.itcast.maven,並在該包下創建一個類
3.1.3 編寫Hello類
3.1.4 在src/test/java中創建一個包cn.itcast.maven,創建一個測試類HelloTest
3.1.5 編寫測試類
3.1.6 編輯pom.xml文件
說明:
project:表示一個工程
modelVersion:爲版本號
3.1.7 用maven命令編譯項目(mvn compile)
在命令行出現這樣的形式,說明編譯OK了。
3.1.8 target文件夾的變化
可以看到編譯後的文件全部放入到了target裏。
3.1.9 clean
執行命令mvn clean
說明執行成功了。
可以看到target的目錄沒有了。
3.1.10 test
執行mvn test命令
說明執行成功了,並且運行了一個類,再次看target的結構
說明:
target/classes
存放編譯後的類
target/test-classes
存放編譯後的測試類
target/surefire-reports
存放測試報告
可以看出,只要進行測試,清理和編譯可以自動執行了。
3.1.11 package
執行mvn package
這個界面說明打包成功了。
說明:
target/classes
編譯後的類的路徑
target/test-classes
編譯後的測試類的路徑
target/surefire-reports
測試報告
target/maven-archiver
執行package的歸檔
Hello-0.0.1-SNAPSHOT.jar
執行完package命令後打成的jar包
3.2 Hellofriend項目
3.2.1 建立HelloFriend項目工程
3.2.2 編寫pom.xml文件
3.2.3 執行mvn compile命令
執行這個命令的時候會出錯,因爲HelloFriend項目是建立在Hello項目基礎之上的,但是現在工程中沒有引入Hello.java這個類。所以會出錯。
3.2.4 執行mvn clean install命令
1、 打開命令行
2、 把當前路徑調節到Hello工程的根目錄
3、 執行mvn clean install命令,把Hello整個工程放入到倉庫中
如果執行成功,則會在倉庫中看到。
在倉庫中的位置。
3.2.5 執行mvn package命令打包HelloFriend工程
說明成功了。
可以看到成功以後,在target目錄下多了一個jar包
該jar包爲當前工程的jar包。
3.2.6 建立cn.itcast.maven包及HelloFriend類
3.2.7 編輯HelloFriend類
3.2.8 建立cn.itcast.maven包和測試類HelloFriendTest類
3.2.9 編輯HelloFriendTest類
3.2.10 執行mvn package命令
上圖中的”say hello”就是輸出的結果。
4 maven的核心概念
4.1 項目對象模型
說明:
maven根據pom.xml文件,把它轉化成項目對象模型(POM),這個時候要解析依賴關係,然後去相對應的maven庫中查找到依賴的jar包。
在clean,compile,test,package等階段都有相應的Plug-in來做這些事情。
而這些plug-in會產生一些中間產物。
4.2 插件的位置
在maven解壓後的位置F:\work\course\maven\maven有一個bin文件夾,裏面有
一個文件m2.config文件
set maven.home default ${user.home}/m2,其中該路徑指明瞭倉庫的存儲位置。
其中settings.xml文件中
這個說明了倉庫中的位置。
這裏的插件就是執行maven的各種命令所需要的插件。
4.3 maven座標
4.3.1 maven座標的主要組成
groupId:定義當前maven項目屬於哪個項目
artifactId:定義實際項目中的某一個模塊
version:定義當前項目的當前版本
packaging:定義當前項目的打包方式
根據這些座標,在maven庫中可以找到唯一的jar包
4.4 依賴管理
4.5 繼承管理
創建一個項目ParentJunit
新建一個項目:
編輯pom.xml文件
說明:只需要繼承ParentJunit,所以junit就被引入到HelloJunit中了
4.6 倉庫管理
可以根據maven座標定義每一個jar包在倉庫中的存儲位置。
大致爲:groupId/artifactId/version/artifactId-version.packaging
4.6.1 倉庫的分類
本地倉庫
~/.m2/repository/
每一個用戶也可以擁有一個本地倉庫
遠程倉庫
中央倉庫:Maven默認的遠程倉庫
http://repo1.maven.org/maven2
私服:是一種特殊的遠程倉庫,它是架設在局域網內的倉庫
鏡像:用來替代中央倉庫,速度一般比中央倉庫快
5 maven在myeclipse中的應用
5.1 環境配置
如果所示,myeclipse自帶maven,從上圖看以看到Maven JDK是可以配置的,這裏用了jdk1.6
從上圖可以看出,我們可以利用myeclipse自帶的maven,也可以使用自己的maven。
上圖應用的就是自己的maven。
從最下面可以看出,這是settings.xml文件的路徑。
這幅圖說明了用戶的settings.xml文件的位置和用戶的倉庫的位置。
這是最基本的環境的配置。
5.2 settings.xml文件
5.2.1 倉庫的路徑
通過配置localRepository的值可以改變倉庫的路徑。
5.2.2 配置私服的路徑
5.2.3 直接連接互聯網
如果不想連接私服,可以直接連接互聯網。只需要把連接私服的所有的路徑去掉即可。
5.3 創建maven工程
5.3.1 創建java project
選擇Maven Project
選擇快速創建maven-archetype-quickstart
填寫group ID,Artiface Id,Version,Package屬性
然後點擊finish就可以了。
5.3.2 創建web project
新創建一個web project
添加maven support即可。