maven筆記

Maven 是一個項目管理和構建自動化工具。

Maven 使用慣例優於配置的原則 。它要求在沒有定製之前,所有的項目都有如下的結構:

目錄

目的

${basedir}

存放 pom.xml和所有的子目錄

${basedir}/src/main/java

項目的 java源代碼

${basedir}/src/main/resources

項目的資源,比如說 property文件

${basedir}/src/test/java

項目的測試類,比如說 JUnit代碼

${basedir}/src/test/resources

測試使用的資源

 

一個 maven 項目在默認情況下會產生 JAR 文件,另外 ,編譯後 的 classes 會放在 ${basedir}/target/classes 下面, JAR 文件會放在 ${basedir}/target 下面。

 

爲了驗證我們的程序能運行,執行下面的命令:

 ~$java -cptarget/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App

POM(Project Object Model)

 

一個項目所有的配置都放置在 POM 文件中

 

在 POM 中,groupId, artifactId, packaging, version 叫作 maven 座標,它能唯一的確定一個項目。一般 maven 座標寫成如下的格式:

      groupId:artifactId:packaging:version

Maven 插件

一個目標是一個工作單元,而插件則是一個或者多個目標的集合。mvn 本身不會做太多的事情,它把構建的任務交給插件去做。

Maven 生命週期

生命週期指項目的構建過程,它包含了一系列的有序的階段 (phase),而一個階段就是構建過程中的一個步驟。插件目標可以綁定到生命週期階段上。一個生命週期階段可以綁定多個插件目標。當 maven 在構建過程中逐步的通過每個階段時,會執行該階段所有的插件目標。maven 能支持不同的生命週期,但是最常用的是默認的Maven生命週期 (default Maven lifecycle )。

1.    process-resources 階段:resources:resources

2.    compile 階段:compiler:compile

3.    process-classes 階段:(默認無目標)

4.    process-test-resources 階段:resources:testResources

5.    test-compile 階段:compiler:testCompile

6.    test 階段:surefire:test

7.    prepare-package 階段:(默認無目標)

8.    package 階段:jar:jar

Maven 依賴管理

傳遞依賴是指 maven 會檢查被依賴的 jar 文件,把它的依賴關係納入最終解決的依賴關係鏈中。

在 POM 的 dependencies 部分中,scope 決定了依賴關係的適用範圍。 test, provided, complie

Maven 庫

本地庫是指 maven 下載了插件或者 jar 文件後存放在本地機器上的拷貝。當 maven 查找需要的 jar 文件時,它會先在本地庫中尋找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章