MAVEN新手教程

1.首先我们需要知道什么是MAVEN?

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。它是构建工具,也是依赖管理工具,项目信息聚合工具。
其中最核心的项目对象模型(POM),那什么是项目对象模型呢?
实例化来说,一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等信息,这个模型就是项目对象模型。

我们为什么需要学习MAVEN?MAVEN可以给我们带来什么帮助吗?

因为在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还里要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要。
Maven提供了开发人员构建一个完整的生命周期框架。他可以统一开发规范与工具,统一管理jar包。因此,我们就要用到Maven一个项目管理工具。

我们接下来需要学习如何下载以及安装MAVEN

1.官网下载安装[link](https://maven.apache.org/download.cgi)链接: link.,选择bin.zip的版本
2.解压到安装目录
3 配置环境变量

M2_HOME = D:\app\apache-maven-3.6.1
PATH = %M2_HOME%\bin

4.测试安装成功:cmd中执行mvn -v
5.修改配置文件,apache-maven-xxx\conf目录下的settings文件

(可选,默认在C盘的用户目录下)修改localRepository(本地仓库) 为
	<localRepository>d:/mvn/repo</localRepository>
(极速之选,不选龟速)修改mirrors,在<mirrors>标签下加入以下配置,启动阿里云的镜像
 <mirror> 
      <id>alimaven</id> 
      <name>aliyun maven</name> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
      <mirrorOf>central</mirrorOf>         
   </mirror>

6.配置到你的eclipse中

maven解析nacos maven model inspection_maven

使用MAVEN之前我们需要了解一些关于MVEN的基础知识

1.MAVEN是一个构建工具
构建的默认生命周期:校验- 初始化- 编译- 测试- 打包- 集成测试- 安装- 部署
默认生命周期:validate-initialize-compile-test-package-integrationTest-install-deploy
相关命令:
mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 清理 生命周期,(把所有生成的东西都删除)
2.MAVEN中的坐标
坐标存在于pom.xml之中 ,统一管理有关你的项目信息
对maven来说,采用"约定优于配置"的策略可以减少修改配置的工作量,也可以降低学习成本,更重要的是,给项目引入了统一的规范。

坐标(maven的版本规范 )

坐标标签名

坐标标签意义

实例

groupId

A公司的域名反写

com.woniu,cq

artifactId

项目名

rocker

version

版本

SNAPSHOT(快照版本) rc RELEASE GA milestone

type

类型

jar、war

classifier

标识符

例如JDK15

![在这里插入图片描述](代表了类型常见的有jar、war

pom.xml中还有你所需要的依赖的信息

denpendency标签所代表的就是依赖的信息

maven解析nacos maven model inspection_maven_02


这是记录你的依赖相关信息,用于在仓库中寻找你所需要的依赖信息

仓库是什么呢?

就是你需要一个依赖但是没有这个依赖则需要去寻找,去哪里寻找呢就是去仓库寻找,

仓库一共分为3个:

1是local仓库本地的之前在配置mvn的setting.xml文件中也更改了地址的,就是从中央仓库或者镜像仓库中取下,然后储存在本地的。

2private私人的镜像仓库。也是在setting.xml中设置的。设置这个可以方便我们从国内的镜像网站中下载所需要的依赖,不需要去中央仓库下载,可以提高我们的开发的效率

3.central:中央仓库,所有依赖的公共储存库,下载速率慢

然后根据依赖信息去寻找依赖,首先要看你本地仓库有没有所需要的依赖,有所需依赖则不会再去下载,直接使用。没有的话则按 local -> private-> central 的顺序去寻找所需依赖并下载。

MVN的目录结构

└─src                     源代码目录
    ├─main                工程源代码目录 
    │  ├─java              java源码
    │  │  └─com            
    │  │      └─woniuxy
    │  │          └─build  包名
    │  └─resources         资源目录: 配置文件
    └─test                 测试相关
    │  └─java
    │       └─com
    │           └─woniuxy
    │               └─build
  	└─target               输出目录,所有的输出物都存放在这个目录下  
  		└─arget/classes    编译之后的class文件 
pom.xml  	用于maven的配置文件

依赖的特性

Only compile and runtime scopes are transitive
A->B->C
简单传递依赖:A->C
A->B-C(0.1)
A->C(0.2)
最短路径优先原则: A->C(0.2)
A->B->C(0.1)
A->E->C(0.2)
第一声明优先原则:最终依赖C(0.1)

#依赖排除 在depency标签中加入不需要的依赖信息如:
<exclusions>
      <exclusion>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
      </exclusion>
    </exclusions>

Maven常用命令

  1. compile
  2. clean 删除target/
  3. test test case junit/testNG
  4. package 打包

5. install 把项目install到local repo

  1. deploy 发本地jar发布到remote

安装成功之后我们应该学会简单的使用MAVEN

接下来我们可以试着创建一个javase项目

#打开cmd窗口输入以下指令
# 生成了java se 项目
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.woniuxy.build -DartifactId=demo
#默认选择7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
#默认版本号为:Define value for property 'version' 1.0-SNAPSHOT:
#再次确认groupId: com.woniuxy.build
#artifactId: demo
#version: 1.0-SNAPSHOT
#package: com.woniuxy.build
#确认后生成一个名叫demo的javase项目
# 在pom.xml的目录下运行项目
mvn clean compile exec:java -Dexec.mainClass="com.woniuxy.build.App"
# 打包
mvn package