Maven基本概念

一、Maven 基本概念

Maven 是 Apache 下的一个纯 java 开发的开源项目,它是项目管理工具 ,可以使用 Maven 对 java 项目进行项目构建、依赖管理

Maven 官网:https://maven.apache.org/

1.1 项目构建

项目构建是一个项目从编写源代码到编译、测试、打包、部署、运行的过程。Maven 将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段,后面章节详细介绍每个阶段,这里先大概了解下:

上图中部分阶段对应命令如下:

  • 清理阶段对应的 Maven 命令是 clean,清理输出的 class 文件;
  • 编译阶段对应的 Maven 命令是 compile,将 Java 代码编译成 class 文件;
  • 打包阶段对应的 Maven 命令是 package,Java 工程可以打成 jar 包,web 工程可以打成 war 包;
  • 运行一个 Maven 工程(web 工程)需要一个命令:tomcat:run。

Maven 工程构建的优点:

  • 一个命令完成构建、运行,方便快捷;
  • Maven 对每个构建阶段进行规范,非常有利于大型团队协作开发。

1.2 依赖管理

一个 java 项目可能要使用一些第三方的 jar 包才可以运行,那么我们说这个 java 项目依赖了这些第三方的 jar 包。

什么是依赖管理?

  • 就是对项目所有依赖的 jar 包进行规范化管理。

Maven 项目管理所依赖的 jar 包不需要手动向工程添加 jar 包,只需要在 pom.xml(Maven 工程的配置文件)添加 jar 包的坐标,自动从 Maven 仓库中下载 jar 包、运行,如下图:

使用 Maven 依赖管理添加 jar 的好处:

  1. 通过 pom.xml 文件对 jar 包的版本进行统一管理,可避免版本冲突;
  2. Maven 团队维护了一个非常全的 Maven 仓库,里边包括了当前使用的 jar 包,Maven 工程可以自动从 Maven 仓库下载 jar 包,非常方便;
  3. jar 包之间的依赖:通过依赖的传递性自动完成;

二、Maven 安装与配置

2.1 JDK 安装与配置

Maven 的安装必须基于 JAVA_HOME 配置的环境变量。

系统变量:

  • 变量名:JAVA_HOME
  • 变量值:JDK 安装根路径

Path 路径引入:

  • %JAVA_HOME%\bin

注:Maven3.6 + 版本,jdk 至少是 1.8 及以上版本。

2.2 Maven 安装与配置

Maven 下载

Maven 的官网下载地址:https://maven.apache.org/download.cgi,可以下载最新版本。

配置

1.首先找到自己解压好的的maven文件

2.点击maven中的bin文档并复制目录

3.打开编译系统环境,打开环境变量

4.找到系统变量的中path

5.点击新建复制路径

6.打开cmd输入mvn -version,能显示就说名成功

三、Maven 约定的目录结构

  1. Java 项目与 javaWeb 项目中 src 即源码目录。
  2. Maven 项目的源码目录有四个,分别为:
    • src/main/java:存放项目的源码(.java)文件。
    • src/main/resources:存放项目配置资源文件和资源文件,如 Spring、Mybatis 配置文件,db.properties 数据库资源文件。
    • src/test/java:存放测试代码,如 junit 测试类。
    • src/test/resources:存放测试中使用的配置文件。
  3. src/main/webapp:Maven Web 项目的目录。
  4. target:项目输出位置,编译后的 class 文件会输出到此目录。
  5. pom.xml:当前项目的配置管理、依赖管理、插件管理。

结构如下:

约定目录结构的意义:

  • Maven 为了让构建过程能够尽可能自动化完成,所以必须约定目录结构的作用。例如:Maven 执行编译操作,必须先去 Java 源程序目录读取 Java 源代码,然后执行编译,最后把编译结果存放在 target 目录。

四、Maven 仓库和坐标

Maven 仓库分类:

  • 本地仓库:本地主机上的仓库。
  • 远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。

Maven 的工作需要从仓库下载一些 jar 包,如下图所示,本地的 Maven 项目都会通过 Maven 软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存放到本地仓库,本地仓库就是本地文件夹,当第二次需要此 jar 包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

下图描述了 maven 中仓库的类型:

五.maven项目构建

新建maven项目

确认之后就可以等待maven依赖加载

如果有下载的maven:

5.1 maven的多模块项目的管理

除了controller需要:如图特殊创建剩下的都是正常创建

controller中导入service依赖,在service中导入dao依赖,在dao中导入pojo依赖,这样就可以进行多模块管理。

相关推荐
@淡 定2 小时前
JVM内存区域划分详解
java·jvm·算法
❀͜͡傀儡师2 小时前
运维问题排查笔记:磁盘、Java进程与SQL执行流程
java·运维·笔记
篱笆院的狗2 小时前
Java 中如何创建多线程?
java·开发语言
默 语2 小时前
RAG实战:用Java+向量数据库打造智能问答系统
java·开发语言·数据库
醒过来摸鱼2 小时前
Java Compiler API使用
java·开发语言·python
dazhong20122 小时前
Mybatis 敏感数据加解密插件完整实现方案
java·数据库·mybatis
TDengine (老段)2 小时前
TDengine 在智能制造领域的应用实践
java·大数据·数据库·制造·时序数据库·tdengine·涛思数据
Coder_Boy_2 小时前
基于 MQTT 的单片机与 Java 业务端双向通信全流程
java·单片机·嵌入式硬件
Asurplus2 小时前
Centos7安装Maven环境
java·centos·maven·apache·yum