一、下载
官网下载,这里下载的是3.6.0版本
二、安装
解压后放到要安装的位置,然后配置环境变量:(详见文档《Maven3.6.0设置说明.doc》)
变量名:MAVEN_HOME 变量值:E:\JavaInstall\Maven\Maven3.6\apache-maven-3.6.0-bin\apache-maven-3.6.0
变量名:path 变量值:;%MAVEN_HOME%\bin;
测试是否安装成功:mvn -v
..>mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: E:\JavaInstall\Maven\Maven3.6\apache-maven-3.6.0-bin\apache-maven-3.6.0\bin\..
Java version: 1.7.0_80, vendor: Oracle Corporation, runtime: E:\JavaInstall\JDK\JDK7\jdk1.7.0_80\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"
..>
三、pox.xml文件基本结构
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"> --schemal约束
<modelVersion>4.0.0</modelVersion>
<groupId>com.ly.firstMaven</groupId> --坐标
<artifactId>helloMaven</artifactId> --坐标
<version>1.0-SNAPSHOT</version> --坐标
</project>
四、使用
常用的maven命令:
mvn compile :编译
mvn package:打包
mvn clean:清空target目录
mvn install:把自定义的maven项目,安装至本地仓库。
- 1、mvn compile :编译
创建项目teach01,编写java文件,执行mvn compile,直到BUILE SUCCESS成功,生成target文件夹。
- 2、mvn test:自动完成测试
编写测试文件,执行mvn test,可以自动完成测试。如果测试文件 teach01\src\test\java\com\ly\maven\TestHelloMaven.java引入了外来依赖,比如junit,可以很明显的看到报错:程序包org.junit不存在。具体报错信息如下:
E:\学习文档\【5】Maven实战视频\源码\teach01>mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< com.ly.firstMaven:helloMaven >--------------------
[INFO] Building helloMaven 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloMaven ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory E:\学习文档\【5】Maven实战视频\源码\teach01\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloMaven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to E:\学习文档\【5】Maven实战视频\源码\teach01\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ helloMaven ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory E:\学习文档\【5】Maven实战视频\源码\teach01\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ helloMaven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to E:\学习文档\【5】Maven实战视频\源码\teach01\target\test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[2,1] 程序包org.junit不存在
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[3,24] 程序包org.junit不存在
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[6,10] 找不到符号
符号: 类 Test
位置: 类 com.ly.maven.TestHelloMaven
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[10,17] 找不到符号
符号: 方法 assertEquals(java.lang.String,java.lang.String)
位置: 类 com.ly.maven.TestHelloMaven
[INFO] 4 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.744 s
[INFO] Finished at: 2019-10-31T13:37:36+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project helloMaven: Compilation failure: Compilation failure:
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[2,1] 程序包org.junit不存在
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[3,24] 程序包org.junit不存在
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[6,10] 找不到符号
[ERROR] 符号: 类 Test
[ERROR] 位置: 类 com.ly.maven.TestHelloMaven
[ERROR] /E:/学习文档/【5】Maven实战视频/源码/teach01/src/test/java/com/ly/maven/TestHelloMaven.java:[10,17] 找不到符号
[ERROR] 符号: 方法 assertEquals(java.lang.String,java.lang.String)
[ERROR] 位置: 类 com.ly.maven.TestHelloMaven
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
E:\学习文档\【5】Maven实战视频\源码\teach01>
3、这时我们需要在pom.xml中添加依赖dependency,如:junit依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
然后,再次执行mvn test,成功。
成功会显示:Failures: 0, Errors: 0, Skipped: 0。也可以文件中看到成功的消息;
如有报错,报错信息也会打印在此文件里(当然,控制台也会显示)。
- 4、mvn clean:清空target目录
- 5、mvn package:打包jar包
- 6、mvn install:把自定义的maven项目,安装至本地仓库。
五、仓库repository
引入仓库的概念。maven的核心就是仓库。仓库:相当于本地的jar包存储。首次使用,需要从网上下载所需jar包,后面使用过程中,首先在本地仓库检索是否存在,若存在,则使用本地仓库中的jar包,若不存在,则继续从网上下载。注意:自己写的程序,也可以打成jar包,执行mvn install 放到本地仓库中,供其他项目使用。且这种方式在实际操作中经常使用,是模块化的思想。大的项目分散为多个模块开发,最后统一,岂不美哉。使用方式为:在pom.xml中添加dependency引入模块(jar包)