一、概述
Maven是一個項目管理工具,它包含了一個項目對象模型(Project Object Model),一組標准集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。
Maven有一個生命周期,當你運行mvn install的時候被調用。這條命令告訴Maven執行一系列的有序的步驟,直到到達你指定的生命周期。遍歷生命周期旅途中的一個影響就是,Maven 運行了許多默認的插件目標,這些目標完成了像編譯和創建一個JAR文件這樣的工作。
此外,Maven能夠很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。
1.項目的構建流程
2.Maven模型
3.Maven的約定
src/main/java: 存放項目的java文件。
src/main/resources: 存放項目的資源文件,如spring,hibernate的配置文件。
src/test/java: 存放所有的測試的java文件。
src/test/resources: 存放測試用的資源文件。
target: 項目輸出位置。
pom.xml 文件
二、基礎入門
1.下載jar包並解壓
bin: 含有mvn運行的腳本。
boot: 含有plexus-classworlds類加載器框架 。
conf: 含有settings.xml配置文件。
lib: 含有Maven運行時所需要的java類庫。
LICENSE.txt, NOTICE.txt, README.txt針對Maven版本,第三方軟件等簡要介紹。
2.配置環境變量
(1)在path路徑添加Maven的bin目錄路徑
D:\maven-3.3.9\bin
(2)添加環境變量 M2_HOME
M2_HOME = D:\maven-3.3.9
3.建庫
(1)打開路徑
C:\Users\Administrator\.m2
(2)復制settings.xml到上述路徑
D:\maven-3.3.9\conf目錄下有settings.xml文件,復制到上面的路徑下。
(3)修改settings.xml文件
(4)配置Eclipse
第一步
第二步
第三步
-Dmaven.multiModuleProjectDirectory=$M2_HOME
4.Hello
(1)新建一個MavenProject
(2)創建Java文件
稍等片刻,這個工程左上角會出現M字樣。
One.java
public class One{ public String say(String name){ return "Hello Maven " + name; } }
OneTest.java
public class OneTest{ @Test public void testOne(){ One one = new One(); String result = one.say("AAA"); Assert.assertEquals("Hello Maven AAA",result); } }
(3)運行項目
單擊右鍵項目"run as"--->maven build,在Navigator視圖下可以看到target目錄下有文件了。
(4)POM文件的解釋
<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> <!-- 群組ID: 公司域名反寫 --> <groupId>com.kiwi</groupId> <!-- 項目ID: 一個公司只有一個域名,但是可以有多個項目 --> <artifactId>One</artifactId> <!-- 版本號: 用於描述開發過程的階段性標識--> <version>0.0.1-SNAPSHOT</version> <!-- 默認字符集 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- 依賴管理 --> <dependencies> <!-- 具體的依賴 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> </dependencies> </project>