Maven
項目管理工具
- 構(gòu)建項目(Builds)
- 依賴管理(Dependencies)
- 配置管理(SCMs)
- 發(fā)布管理(Release)
- 文檔編制(Documentation)
- 報告(Reporting)
特點:
- 微內(nèi)核(只解析XML拂玻,其他由Maven插件處理)
- 約定優(yōu)于配置
- 定義項目模型
安裝:
brew install maven
mvn -version
創(chuàng)建Maven項目
mvn archetype:generate -DgroupId=org.flyne.demo -DartifactId=maven-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# 這是一個goal
項目結(jié)構(gòu)
maven-demo
|– pom.xml
`– src
|– main
| `– java
| `– org
| `– flyne
| `– demo
| `– App.java
`– test
`– java
`– org
`– flyne
`– demo
`– AppTest.java
POM文件,項目對象模型(Project Object Model)
項目的核心配置文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tiantian.mavenTest</groupId>
<artifactId>projectB</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
</dependencies>
</project>
構(gòu)建項目
mvn package
# 這是一個phase
mvn compile
# 這也是一個phase日川,包含如下的階段:
# 1. validate
# 2. generate-sources
# 3. process-sources
# 4. generate-resources
# 5. process-resources
# 6. compile
Maven常用階段(phase)
- validate:驗證項目是否正確看疙,所有必須的信息是否可用
- compile:編譯項目的源碼
- test:使用單元測試框架對編譯后的源代碼逆行測試
- package:接受編譯好的代碼腹纳,打包成可發(fā)布的格式身腻,如jar
- verify:運行任何檢查雄坪,驗證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn)
- install:將包安裝到Maven本地倉庫厘熟,供本地其他Maven項目使用
- deploy:將最終的包復(fù)制到遠(yuǎn)程倉庫,供其他開發(fā)人員和Maven項目使用
- clean:清理上一次構(gòu)建生成的文件
- site:生成項目站點文檔