groupid 一般定義方式為實際項目名
artifactId 一一般表示該項目中的某個某塊名
version 表示該項目中的某個模塊的版本號
scope 表示該某個的作用范圍,scope的不同值也表示該模塊的作用fanwe
- compile :表示當前模塊在程序的各個階段都可能被使用,如 編譯 運行 測試 打包等
- provided :表示當前模塊在編譯 運行 測試階段可能被使用 ,在程序打包時不需要 如 jsp-api ,sevlet-api在Tomcat上進行發布時將不需要進行提供否則將會產生依賴沖突
- test:表示當前的模塊只在test階段有效其余階段將不被需要
- runntime:表示當前的依賴模塊不需要參加編譯,但是需要在運行階段參加
name:用于指定項目的名稱
description:對當前項目的描述
parent:指定當前項目的父工程
packaging:表示項目的打包方式 jar war ,還有一種pom的方式多用于組合聚合模式中指定當前項目為一個父工程項目
dependencyManagement:多用于在父工程中指定依賴,在子工程中可以直接進行父工程中該標簽中的所用依賴的繼承,子工程中也可以將父共工程中的依賴進行覆蓋使用自身定義的依賴
dependencies:依賴管理標簽 將所有依賴在該標簽中進行定義 dependency
dependency:進行某個具體的依賴的定義
build :用于建立插件使用
plugins:在該標簽中定義插件plugin
plugin:表示某個具體的插件
properties:用于進行依賴的版本的統一控制在version中使用${在properties中的標簽名}進行版本聲明
modules:在父工程中指定有哪些工程是該工程的子工程
module:自定具體的某個子工程的名字,該子工程的名字為artifactId的值
maven的生命周期:在maven的生命周期中執行某個生命周期中的命令時會將該命令前的所有什么周期的命令進行執行一次也就是生命周期的階段具有前后依賴關系,每個生命周期相互獨立
- clean:pre-clean:進行clean前的一些準備工作clean:清楚之前項目產生的編譯文件,也就是刪除target文件夾post-clean:執行清理后需要完成的工作
- default:validate:驗證項目結構是否正常 main下面的JAVA和resource文件,test下的java文件是否存在,必要的配置文件是否存在initialize:構建前的初始化工作,初始化參數,創建必要的目錄等generate-source:產生編譯過程中所需的源代碼process-source:處理源代碼generate-resource:產生主代碼中的資源在class中的包process-resource:將資源文件復制到class中對應的包中compile:編譯源代碼,mvn compileprocess-classes:產生編譯過程中生成的文件generate-test-source:產生編譯過程中測試相關的代碼process-test-source:出來測試相關代碼generate-test-resource:產生test相關的資源文件在classpath中的相關的包process-test-resource:將test中的resource中的復制到對應的test-class中對用的resource中的包中test-compile:將test代碼進行編譯 mvn testprocess-test-classes:產生test過程中生成的文件test:運行測試案例prepare-package:處理打包前的初始化的裝備工作package:將編譯后的class和資源打包成壓縮文件pre-integration-test:做好基礎測試前的準備工作,如基礎環境的 參數設置integration-test:集成測試post-integration-test:完成集成測試后的收尾工作,如清理集成環境的參數設置verify:檢測測試后的包是否完好install:將打包的組件以構建的形式,安裝到本地依賴倉庫中,以便共享給本地的其他項目deploy:運行集成和發布環境,將測試后的最終包衣構件的方式發布到遠程倉庫中,方便所有程序員共享
- site:站點的建立和部署pre-site:生成站點簽到準備工作site:生成站點文檔post-site:執行生成站點的收尾工作site-deploy:站點發布到服務器