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依赖,这样就可以进行多模块管理。

相关推荐
像我这样帅的人丶你还16 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩16 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia17 小时前
Mybatis的日志输入
java
亦暖筑序18 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户2986985301421 小时前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao1 天前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿1 天前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰6751 天前
字节跳动国际支付-后端开发-三面面经
java
Flittly1 天前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring
RainCity1 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端