1、maven的核心:pom.xml文件
2、maven約定的目錄結構:
3、maven常用命令:
mvn -v:查看版本
mvn clean:刪除target
mvn compile:編譯
mvn test:測試
mvn package:打包
mvn install:上傳jar包到本地倉庫中
4、創建第一個項目maven01,實現打印Hello World!
(1)在main文件夾下創建HelloWorld.java,創建並存放在此目錄下arc>main>java>com>imooc>maven01>model
package com.imooc.maven01.model;
public class HelloWorld{
public String sayHello(){
return "Hello World!";
}
}
(2)在test文件夾下創建HelloWorldTest.java,創建並存放在此目錄下arc>test>java>com>imooc>maven01>model
package com.imooc.maven01.model;
import org.junit.*;
import org.junit.Assert.*;
public class HelloWorldTest{
@Test
public void testHello(){
Assert.assertEquals("Hello World!",new HelloWorld().sayHello());
}
}
其中,測試時使用到junit包進行測試,因此需要導入其相應的包
import org.junit.*;
import org.junit.Assert.*;
(3)配置pom.xml文件
<?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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<groupId>com.imooc.maven01</groupId>
<artifactId>maven01-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>
其中,以下三項是maven01的信息,也是包maven01的座標
<groupId> </groupId> 項目的包名
<artifactId> </artifactId> 模塊名(此處建議使用項目名)
<version> </version> 版本號
另外,如下部分添加所有包的依賴
<dependencies> </dependencies> 填寫所有包的依賴,即很多的<dependency></dependency>
<dependency> </dependency> 填寫每一個包的依賴,即其對應的座標
引入構建包的流程:
mvn compile編譯源代碼,編譯的過程中如果用到了其他支持包,它會去pom.xml文件中查找有沒有該依賴包的座標,然後引入座標之後,會去本地倉庫中查找,如果有的話就會將該jar包加入到classpth中,如果本地沒有該jar包,就會去網上的中央倉庫中下載,並將其放在本地倉庫中,供項目進行使用。
(4)項目創建完成,運行試試
打開命令提示符,進入maven01項目目錄,
輸入命令mvn compile進行編譯,編譯成功。
輸入命令mvn test進行測試,測試運行成功。
在maven01文件夾下生成target文件夾,內含測試結果。
錯誤解決辦法:
解決辦法:
<project>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
</project>
(2)當創建新類,需要使用HelloWorld類時,前面需要做導入import com.imooc.maven01.model,然而編譯時報錯:
找不到maven01的jar包,因此我們需要將包含HelloWorld的jar包發佈到本地倉庫中,使用mvn install命令完成。
同時在maven02的pom.xml文件</dependencies></dependencies>中添加maven01包的依賴<dependency></dependency>,寫入maven01包的座標<groupId></groupId>、<artifactId></artifactId>和<version></version>,再次編譯便可成功。