一、下载
官网下载,这里下载的是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包)