簡(jiǎn)介
Maven 翻譯為"專家"凛剥、"內(nèi)行",是 Apache 下的一個(gè)純 Java 開發(fā)的開源項(xiàng)目从隆±镀玻基于項(xiàng)目對(duì)象模型(縮寫:POM)概念徽龟,Maven利用一個(gè)中央信息片斷能管理一個(gè)項(xiàng)目的構(gòu)建、報(bào)告和文檔等步驟唉地。
Maven 是一個(gè)項(xiàng)目管理工具,可以對(duì) Java 項(xiàng)目進(jìn)行構(gòu)建传透、依賴管理耘沼。
Maven 也可被用于構(gòu)建和管理各種項(xiàng)目,例如 C#朱盐,Ruby群嗤,Scala 和其他語(yǔ)言編寫的項(xiàng)目。Maven 曾是 Jakarta 項(xiàng)目的子項(xiàng)目兵琳,現(xiàn)為由 Apache 軟件基金會(huì)主持的獨(dú)立 Apache 項(xiàng)目狂秘。
一骇径、安裝
1.1 下載
從Maven官方地址:http://maven.apache.org/download.cgi下載最新版本apache-maven-3.3.9-bin.tar.gz。
1.2 將Maven添加進(jìn)環(huán)境變量
Maven 下載完畢后者春,解壓到環(huán)境變量集合的位置破衔,我是將其解壓在/usr/local/目錄下。
然后在終端中钱烟,執(zhí)行如下命令
# 我用的是zsh
sudo vim ~/.zshrc
# 如果是用bash
# sudo vim ~/.bash_profile
1.3 添加配置
export MAVEN_HOME=/usr/local/apache-maven-3.6.1
export PATH=${PATH}:${MAVEN_HOME}/bin
1.4 使環(huán)境變量生效
source ~/.zshrc
1.5 測(cè)試Maven是否安裝成功
mvn -version
二晰筛、使用
下面只介紹在IntelliJ IDEA中的使用
所需環(huán)境:Maven 3.6.1 、 IntelliJ IDEA 拴袭、 JDK 8
2.1 創(chuàng)建Maven 項(xiàng)目
命令行創(chuàng)建
mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
參數(shù)說(shuō)明:
-DgourpId: 組織名读第,公司網(wǎng)址的反寫 + 項(xiàng)目名稱
-DartifactId: 項(xiàng)目名-模塊名
-DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart拥刻,創(chuàng)建一個(gè)簡(jiǎn)單的 Java 應(yīng)用
-DinteractiveMode: 是否使用交互模式
然后創(chuàng)建信息如下,注意般哼,上下兩個(gè)GroupId 跟 ArtifactId 因?yàn)槲沂欠謩e創(chuàng)建不同的項(xiàng)目截的圖吴汪,所以不一致
附加的一個(gè)標(biāo)準(zhǔn)的 pom.xml 被生成。這個(gè)POM文件類似于 Ant build.xml 文件逝她,它描述了整個(gè)項(xiàng)目的信息浇坐,一切從目錄結(jié)構(gòu),項(xiàng)目的插件黔宛,項(xiàng)目依賴近刘,如何構(gòu)建這個(gè)項(xiàng)目等,請(qǐng)閱讀POM官方指南
在創(chuàng)建 POM 之前臀晃,我們首先需要描述項(xiàng)目組 (groupId), 項(xiàng)目的唯一ID觉渴。
<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>
<!-- 公司或者組織的唯一標(biāo)志,并且配置時(shí)生成的路徑也是由此生成徽惋, 如com.companyname.project-group案淋,maven會(huì)將該項(xiàng)目打成的jar包放本地路徑:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 項(xiàng)目的唯一ID,一個(gè)groupId下面可能多個(gè)項(xiàng)目险绘,就是靠artifactId來(lái)區(qū)分的 -->
<artifactId>project</artifactId>
<!-- 版本號(hào) -->
<version>1.0</version>
</project>
2.2 導(dǎo)入外部依賴
pom 導(dǎo)入外部依賴踢京,https://mvnrepository.com/,
pom 修改如下
<?xml version="1.0" encoding="UTF-8"?>
<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</groupId>
<artifactId>chartboost</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
···
···
</project>
2.3 Maven 打包
導(dǎo)入外部依賴到 pom.xml 文件宦棺,進(jìn)行java文件編寫后瓣距,即可將 Maven 項(xiàng)目打包
注意,在添加外部依賴到 pom.xml 文件后代咸,需要在 IDEA 編輯器的右下角選擇 Enable Auto-Import蹈丸,使依賴能自動(dòng)導(dǎo)入
現(xiàn)在,我們將使用Maven這個(gè)項(xiàng)目,并輸出編譯成一個(gè) “jar” 的文件逻杖。 請(qǐng)參考 pom.xml 文件奋岁,包元素定義應(yīng)該包應(yīng)該輸出什么。
/Users/wu/Work/youmi/Reverses目錄下運(yùn)行
mvn package
它編譯荸百,運(yùn)行單元測(cè)試并打包項(xiàng)目成一個(gè) jar 文件闻伶,并把它放在 project/target 文件夾,接著運(yùn)行如下命令即可
# charboost 是 java 模塊名稱
java -cp target/charboost-1.0-SNAPSHOT.jar chartboost