三、Maven入門
三、Maven入門
(一)創建工程
1. 選擇菜單 File ->new -> Other
選擇Maven下的Maven Project, Next
2. 選中下圖紅框部分的復選框(跳過骨架),next
3. 定義工程坐標
maven對所有工程管理基於坐標進行管理。
坐標包括:
Group Id:項目的名稱,項目名稱以域名的倒序,比如:cn.itcast.mavendemo
Artifact Id:模塊名稱(子項目名稱)
Version:模塊的版本,snapshot(快照版,沒有正式發行)、release(正式發行版本)
輸入後,Finish 。完成後如下圖
工程目錄結構說明:
project
/src/main/java 主體程序 java源文件(不要放配置文件)
/src/main/resources 主體程序所需要的配置文件(不要放java文件)
/src/test/java 單元測試程序 java源文件
/src/test/resources 單元測試程序所用的配置文件
/target 編譯輸出目錄
pom.xml Maven進行工作的主要配置文件。
4. 編寫代碼
(1)在src/main/java 目錄下創建包cn.mavendemo
(2)在包cn.itcast.mavendemo下創建HelloWorld 類
package cn.mavendemo;
publicclass HelloWorld {
publicstaticvoid main(String[] args) { System.out.println("HelloWorld!!"); } } |
(二)設置編譯版本
我們現在的Maven工程默認是JDK1.5 ,我們需要將編譯版本改為JDK1.7
<build> <plugins> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> |
將上邊的配置信息粘貼到pom.xml中。
點擊工程右鍵 Maven -> Update Project ...
彈出窗口後OK .操作後 ,編譯版本改為 1.7
(三)添加依賴
右鍵點擊工程 Maven -- > Add Dependency
添加後打開pom.xml,發現多了以下信息
<dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.0.7.Final</version> </dependency> </dependencies> |
我們再看工程目錄下的Maven Dependecies 下又多了很多jar包
奇怪了!我只是加了一個hibernate的核心包,為什麽會多出這麽多jar包呢?
這是因為hibernate的核心包本身又會依賴其它的jar包,所以導入hibernate包自動會添加hibernate所依賴的包。
(四)項目生命周期(了解)
Maven有三套相互獨立的生命周期,分別是:clean、default、site。clean主要是清理項目、default是Maven最核心的的構建項目、site是生成項目站點。每一個大的生命周期又分為很多個階段。後面的階段依賴於前面的階段,這點有點像Ant的構建依賴。生命周期本身相互獨立,用戶可以僅僅調用生命周期的某一個階段,也就是說用戶調用了default周期的任何階段,並不會觸發clean周期以及site周期的任何事情。三大生命周期蘊含著小小的階段,我們按順序看一下:
(1)clean周期:
pre-clean:準備清理
clean:真正的清理工作
post-clean:執行清理後的一些後續工作
(2)default周期:
validate:驗證
initialize:初始化配置
generate-sources:生成源代碼編譯目錄
process-sources:處理項目主資源文件,復制資源文件到outputclasspath
generate-resources:生成資源目錄
process-resources:處理資源文件
complie:編譯源代碼
process-classes:處理編譯後文件
generate-test-sources:生成測試目錄
process-test-sources:處理項目測試資源文件,復制測試資源文件到outputclasspath
generate-test-resources:生成測試資源文件
process-test-resources:處理測試資源文件
test-compile:編譯測試代碼
process-test-classes:處理測試代碼
test:單元測試運行測試代碼
prepare-package:打包前的準備
package:將編譯好的代碼打包成為jar或者war或者ear等等
pre-integration-test:準備整體測試
integration-test:整體測試
post-integration-test:為整體測試收尾
verify:驗證
install:安裝到本地Maven庫
deploy:將最終包部署到遠程Maven倉庫
(3)site周期:
pre-site:準備生成站點
site:生成站點及文檔
post-site:站點收尾
site-deploy:將生成的站點發布到服務器上
(五)常見命令
maven通過命令對工程進行清理、編譯、測試、打包、部署。
點擊工程右鍵 ,Run As (或Debug As ) -- > MavenBuild ...
常用命令如下:
compile:編譯
clean:清理,將target下的class文件清理
test:執行單元測試類,執行src/test/java下的類
package :將java工程打成jar、war。
install:安裝命令,將將程的jar發布到本地倉庫
發布到倉庫,目錄按照本工程定義的坐標生成目錄
擴展:
其實我們所執行的這些命令是對maven原生命令的封裝,我們可以在命令提示符下直接通過這些命令來對代碼進行編譯打包等操作,格式如下:
mvn 命令名稱 運行不調試
mvnDebug 命令名稱 調試運行
我們要在命令提示符下執行maven命令必須配置下面兩個環境變量
MAVEN_HOME D:\apache-maven-3.3.9
PATH %MAVEN_HOME%\bin
測試Maven環境 ,在控制臺輸入mvn -v ,有下列信息輸出表示Maven配置正常。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
三、Maven入門