Maven是一个项目管理工具,主要作用就是在项目开发阶段,对Java项目进行依赖管理和项目构建。
Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK
下载Maven,http://maven.apache.org/download.cgi
1. Maven 3.3 要求 JDK 1.7 或以上
2. Maven 3.2 要求 JDK 1.6 或以上
Maven 3.0/3.1 要求 JDK 1.5 或以上
配置环境变量
和JDK配置一样
POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标
Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。默认情况下,不管Linux还是 Windows,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库,一般来说,简单的Java项目依赖的构件都可以在这里下载到,需要通过网络才能访问,但是,由于Maven 仓库默认在国外,国内使用难免很慢,所以需要配置为国内的仓库,比如阿里云仓库
找到Maven的安装目录,进入conf目录
打开setting.xml文件
找到mirrors 节点,设置以下内容
alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central
pom.xml文件配置(但是每次创建项目都得重新导入)
alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ true false
注意事项
如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件,pom.xml文件的表头就是远程仓库的配置
File ---> Settings ---> Maven
更改Maven home directory和User settings file
设置默认创建项目仓库
1、生成本地仓库默认地址(用户登录):
C:\Users\HAIER\.m2\repository
2、重新设置maven本地仓库地址:
maven安装路径-->conf文件-->settings.xml-->
#53行/path/to/local/repo 设置成 D:\repository
(1)clean:mvn clean 删除当前工程中target文件中的内容 (2) compile:mvn compile 将当前工程中main文件下所有的java文件编译成class文件,输送到当前工程target (3)test:mvn test 调用test文件夹下所有的测试类中的所有测试方法;生成测试报告 (4)package:mvn package 将我们工程中test文件下所有的java测试类的方式调用执行,进行测试;生成测试报告;如果测试通过,将mian文件下所有的class文件达包成(jar,war) (5)install:mvn install 与mvn package命令执行相同将(jar,war)推送到maven本地仓库中
junit junit 4.11
4.1.1 解释
:表示这是一个依赖 junit :定义当前Maven项目隶属的实际项目junit :定义实际项目中的一个Maven项目或子模块4.11 :Maven项目当前所处的版本
依赖范围 | 含义 |
---|---|
compile | 默认就是compile,什么都不配置也就是意味着compile |
test | 依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行 |
runntime | 被依赖项目无需参与项目的编译 |
provided | 打包的时候可以不用包进去 |
system | 依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用 |
https://mvnrepository.com/search
在Maven中,假设A项目依赖B项目,B项目依赖C项目,则能够推断出A项目依赖C项目,这就是Maven依赖传递。也就是jar包的传递
在pom.xml文件中导入一个spring-webmvc依赖,通过Maven查看导入的依赖,可以发现会有很多其他依赖
org.springframework spring-webmvc 4.1.7.RELEASE
修改创建 maven 项目的 jar 包内容,从而得到我们所需的模板
在 maven 本地仓库,找到D:\repository\org\apache\maven\archetypes\maven-archetype-quickstart\1.4
打开maven-archetype-webapp-1.4.jar
(压缩工具打开)
修改 pom.xml 文件中,properties
内容和build
内容,参考如下:案例中把 junit 测试版本改成了 4.12
UTF-8 1.8 1.8 junit junit 4.12 test src/main/java src/main/resources org.apache.maven.plugins maven-surefire-plugin true org.apache.maven.plugins maven-compiler-plugin 1.8
在 maven 本地仓库,找到D:\repository\org\apache\maven\archetypes\maven-archetype-webapp\1.4
web 项目除了要配置普通项目的内容,还需要配置 web.xml 文件内容,参考如下:
Archetype Created Web Application
同时设置 index.jsp 文件内容
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>index index
运行jar包命令:(在jar包所在文件夹cmd)
Java -jar jar包名
当打包的 jar 运行显示没有主清单属性,解决办法有如下两种:
在 idea 中指定入口方法
org.apache.maven.plugins maven-jar-plugin 3.0.2 true org.example.App