官網:https://maven.apache.org/index.html
POM 參考文檔: https://maven.apache.org/pom.html
Settings 參考文檔: https://maven.apache.org/settings.htmlhtml
Maven 是一個用於構建/管理任何基於Java項目的工具,其自己也是基於Java的 所以須要Java環境。其最初是爲了簡化 Jakarta Turbine 項目的構建而生。java
其主要處理如下關心的領域:web
mvn archetype:generate "-DgroupId=com.mycompany.app" "-DartifactId=my-app" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DarchetypeVersion=1.4" "-DinteractiveMode=false"
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties>
cd maven-sample mvn package //mvn會自動下載打包所需組件
java -cp .\target\maven-sample-1.0-SNAPSHOT.jar top.simpleito.demo.App
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
注:apache
maven-project ├───pom.xml 項目描述文件,定義在生命週期中所需的依賴和所需模塊等等 ├───README.txt 項目說明 ├───NOTICE.txt 項目中使用第三方庫的資料 ├───LICENSE.txt 許可文件 └───src 包含構建項目所需全部資料,site等等 ├───main 最重要的目錄,全部工件(artifect)都應出如今這裏 │ ├───java 工件Java源碼 │ ├───resources 配置及資源等文件 │ ├───filters 包含在構建階段將值注入到resources目錄下配置屬性的文件 │ └───webapp 對於web應用,包含諸如JS/CSS/HTML等資源文件 ├───test 全部測試代碼及資源 │ ├───java │ ├───resources │ └───filters ├───it 一般是用於 Maven Failsafe Plugin 的集成測試 ├───site 使用 Maven Site Plugin(https://maven.apache.org/plugins/maven-site-plugin/index.html) 建立的site文檔 └───assembly 二進制打包裝配配置,通常也不經常使用適用 Apache Maven Assembly Plugin └───target 用於容納 build 的全部輸出
https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
POM 是 Maven 中的基本工做單元,它是一個 XML 文件,包含了"項目有關信息"和"配置Maven構建項目的細節"。
當執行一個任務時,Maven 會在當前目錄尋找 POM 文件,從而讀取所需的配置信息。
POM 中能夠指定許多信息,包括:app
需注意的是:POM 中的<groupid>:<artifactId>:<version>
構成了該工件的徹底限定名
關於 POM、Super POM、最小POM等更多信息參考:Maven POM 詳解框架
https://maven.apache.org/settings.html
settings.xml 包含對 Maven 自身的配置,不該綁定到任何特定項目分發給用戶。主要包含:本地儲存庫,代理,身份驗證信息等等。webapp
該配置文件可能存在兩個位置:maven
若都存在,則內容將被合併做用。優先級:用戶級 > 全局
配置詳情參考:Maven Settingside
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Maven 基於生命週期的概念,意味着構建(build)和分發(distributing)特定工件的過程得以清晰定義,意味着只需學習一小組命令,便可構建任何 Maven 項目。工具
有三種內置構建生命週期(build lifecycle):默認(default)、清理(clean)、site
需注意:
以 default 聲明週期爲例,主要包含如下 phase:完整的請參考 Lifecycle Reference
附/參考:
- 常見問題/需求QA: https://maven.apache.org/guides/getting-started/index.html#sections
- Maven 官方入門指南: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
- Baeldung 關於 Standard Directory Layout 介紹文章(Maven官方介紹很差看): https://www.baeldung.com/maven-directory-structure
關於Archetype更多可參考文檔,但不太經常使用: https://maven.apache.org/archetype/maven-archetype-plugin/index.html