maven課件 java
Maven是一個跨平臺的項目管理工具,主要用於基於java平臺的項目構建,依賴管理。 web
如圖爲項目構建的過程。 spring
解決的項目的問題: apache
一、 若是有好幾個項目,這好幾個項目中,須要用到不少相同的jar包, eclipse
能不能只創建一個倉庫來解決這個問題? maven
2、測試方法能不能所有運行呢? 工具
3、怎麼樣把一個模塊的功能放入到倉庫中 測試
Jdk必須1.6以上的版本 ui
從http://maven.apache.org/官網上下載最新版本的maven spa
把下載下來的maven解壓縮,而後有一個bin文件夾,這是一個bin的文件夾的目錄
F:\work\course\maven\maven\bin
把該目錄追加到環境變量的path中。
有這個圖,說明maven安裝成功了。
C:\Users\Think\.m2
F:\work\course\maven\apache-maven-3.0.5-bin\apache-maven-3.0.5\conf
有一個settings.xml文件,複製到C:\Users\Think\.m2
<localRepository>F:/work/course/maven/mavenRepository/</localRepository>
指定倉庫的路徑
在這裏mavenRepository就是倉庫的路徑
說明:
bin中存放可執行的二進制文件
conf存放settings.xml文件
lib 運行maven所依賴的jar包
src/main/java 存放項目的java文件
src/main/resources 存放項目的資源文件,如spring,hibernate的配置文件
src/test/java 存放全部的測試的java文件
src/test/resources 存放測試用的資源文件
target 項目輸出位置
pom.xml 文件
說明:
project:表示一個工程
modelVersion:爲版本號
在命令行出現這樣的形式,說明編譯OK了。
能夠看到編譯後的文件所有放入到了target裏。
執行命令mvn clean
說明執行成功了。
能夠看到target的目錄沒有了。
執行mvn test命令
說明執行成功了,而且運行了一個類,再次看target的結構
說明:
target/classes
存放編譯後的類
target/test-classes
存放編譯後的測試類
target/surefire-reports
存放測試報告
能夠看出,只要進行測試,清理和編譯能夠自動執行了。
執行mvn package
這個界面說明打包成功了。
說明:
target/classes
編譯後的類的路徑
target/test-classes
編譯後的測試類的路徑
target/surefire-reports
測試報告
target/maven-archiver
執行package的歸檔
Hello-0.0.1-SNAPSHOT.jar
執行完package命令後打成的jar包
執行這個命令的時候會出錯,由於HelloFriend項目是創建在Hello項目基礎之上的,可是如今工程中沒有引入Hello.java這個類。因此會出錯。
一、 打開命令行
二、 把當前路徑調節到Hello工程的根目錄
三、 執行mvn clean install命令,把Hello整個工程放入到倉庫中
若是執行成功,則會在倉庫中看到。
在倉庫中的位置。
說明成功了。
能夠看到成功之後,在target目錄下多了一個jar包
該jar包爲當前工程的jar包。
上圖中的」say hello」就是輸出的結果。
說明:
maven根據pom.xml文件,把它轉化成項目對象模型(POM),這個時候要解析依賴關係,而後去相對應的maven庫中查找到依賴的jar包。
在clean,compile,test,package等階段都有相應的Plug-in來作這些事情。
而這些plug-in會產生一些中間產物。
在maven解壓後的位置F:\work\course\maven\maven有一個bin文件夾,裏面有
一個文件m2.config文件
set maven.home default ${user.home}/m2,其中該路徑指明瞭倉庫的存儲位置。
其中settings.xml文件中
這個說明了倉庫中的位置。
這裏的插件就是執行maven的各類命令所須要的插件。
groupId:定義當前maven項目屬於哪一個項目
artifactId:定義實際項目中的某一個模塊
version:定義當前項目的當前版本
packaging:定義當前項目的打包方式
根據這些座標,在maven庫中能夠找到惟一的jar包
建立一個項目ParentJunit
新建一個項目:
編輯pom.xml文件
說明:只須要繼承ParentJunit,因此junit就被引入到HelloJunit中了
能夠根據maven座標定義每個jar包在倉庫中的存儲位置。
大體爲:groupId/artifactId/version/artifactId-version.packaging
本地倉庫
~/.m2/repository/
每個用戶也能夠擁有一個本地倉庫
遠程倉庫
中央倉庫:Maven默認的遠程倉庫
http://repo1.maven.org/maven2
私服:是一種特殊的遠程倉庫,它是架設在局域網內的倉庫
鏡像:用來替代中央倉庫,速度通常比中央倉庫快
若是所示,myeclipse自帶maven,從上圖看以看到Maven JDK是能夠配置的,這裏用了jdk1.6
從上圖能夠看出,咱們能夠利用myeclipse自帶的maven,也可使用本身的maven。
上圖應用的就是本身的maven。
從最下面能夠看出,這是settings.xml文件的路徑。
這幅圖說明了用戶的settings.xml文件的位置和用戶的倉庫的位置。
這是最基本的環境的配置。
經過配置localRepository的值能夠改變倉庫的路徑。
若是不想鏈接私服,能夠直接鏈接互聯網。只須要把鏈接私服的全部的路徑去掉便可。
選擇Maven Project
選擇快速建立maven-archetype-quickstart
填寫group ID,Artiface Id,Version,Package屬性
而後點擊finish就能夠了。
新建立一個web project
添加maven support便可。