【Maven】核心概念

一、Maven工程中约定的目录结构

工程名/项目名/(根目录)
	|---/src
		|---/main (存放主程序的Java代码和配置文件)
			|---/java(存放程序包和包中的.java文件)
			|---/resources(Java程序中要使用的配置文件)
			
		|---/test(存放测试程序的代码和文件,可以没有,非强制)
			|---/java(存放测试所用到的程序包和包中的.java文件)
			|---/resources(测试Java程序中要使用的配置文件)
			
	|---/pom.xml文件 (maven的核心文件,maven项目中必备的)

🙌一般用maven部署的项目的目录结构就是这样的,按约定去部署自己的项目,方便自己查找相关文档,方便了解项目。

二、仓库管理

🎶仓库的概述

Maven 的术语中,仓库(Repository)是一个位置(Place),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件 或 任何其他的工程指定的文件。

🎶仓库的分类

1. 本地仓库:个人计算机的一个文件夹,里面存放各种 jar 包(项目使用的 jar 或是maven使用的插件(各种jar);

2. 远程仓库:在互联网上的,使用网络才能使用的仓库:

	a. 中央仓库:所有开发人员共享使用的一个集中的仓库(https://mvnrepository.com/);
	
	b. 中央仓库的镜像:中央仓库的备份,在各大洲,重要的城市一般都有镜像(它的存在是为了减轻中央仓库所在服务器的压力);

	c. 私服:在公司内部,在局域网中使用的,不对外使用的。

本地仓库所在位置的设置

在所满足的maven子目录下的conf目录下的setting.xml扩展性标记语言文件内:

里面有个localRepository(翻译为本地存储库)标签
在这里插入图片描述

重写更改本地仓库路径,不使用默认路径有什么好处呢?
可以减少C盘内存的消耗,虽然 maven 本身很小,但有时下载的 jar 包所需内存还是蛮大的,所以最好是
在 setting.xml 文件下更改一下本地仓库的路径。

🎶Maven对仓库的使用

Maven构建某项目中,如果需要某些插件:

查找顺序:
	1. 先到Maven的本地仓库中查找,如果找到可以直接使用,如果没找到会自动连接外网;
	2. 到远程中央仓库中查找,如果远程仓库中能找到,则先把所需要的插件下载到本地仓库,
然后再使用,如果没有外网而且远程仓库也找不到,则构建失败/报异常。

在这里插入图片描述

三、POM

POM(Project Object Model)工程对象模型。Maven把一个项目的结构和内部抽象成一个模型,它是使用Maven工作时的基本组件,是一个xml文件,在工程的根目录下,文件名为pom.xml。

🎶工程的唯一标识

在创建 POM 之前,必须确定工程组(groupId)、名称(artifactId)和 版本(version),这是工程的唯一标识。这三个元素生成一个基本坐标,在众多的 maven 项目中可以唯一定位到仓库中的某一个项目。

groupId:组织id,工程组的标识。一般格式为:公司倒写的域名+项目名(com.baidu.appollo);
artifactId:工程的标识,工程的名称,项目的名称,对应着 groupId 的子项目;
version:工程的版本号,在 artifact 的仓库中,用来区分不同的版本。如果还在开发,是不稳定版本,通常在版本后带 -SNAPSHOT。(snapshot:快照)。

MySQL连接驱动8.0.31的定位:
在这里插入图片描述

🎶依赖(dependencies和dependency)

不难看出,dependencies 是复数,可以设置多个 dependency 为子标签设置多个依赖。而标签dependency 是通过坐标来定位的。由上面的 MySQL 驱动不难看出是怎么个意思。为了一个项目可以构建或者运行,依赖 jar 包是不可避免的。也可以看看下面的servlet 依赖。

在这里插入图片描述
scope 标签是用来管理依赖的部署的,确定依赖的范围。

🎶设置打包类型(packaging)

packaging 标签可用来设置打包的类型,默认是 jar,当需打包web 应用时,可将打包类型设为 war。

🎶配置属性和全局变量(properties)

属性的配置(配置构建编码为UTF-8,配置编译和运行的JRE类型为版本17)

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

配置全局变量

<properties>
    <servlet-version>10.1.0</servlet-version>
  </properties>
<dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-servlet-api</artifactId>
      <version>${servlet-version}</version>
      <scope>provided</scope>
    </dependency>

🎶依赖类型

依赖类型有三种:

1. compile
2. test
3. provided

在这里插入图片描述

四、Maven的生命周期

Maven 生命周期就是为了对所有的构建过程进行抽象和统一,是通过插件实现的。包括项目的清理、编译、测试、打包、安装、部署等构建步骤。

Maven 的三大生命周期:

  1. Clean(清理项目)对应命令==》 mvn clean
  2. Default(构建项目,核心)包括编译、测试、打包、部署等操作,对应命令==》mvn compile; mvn test; mvn package; install.
  3. Site(生成项目站点)生成和发布Maven 站点,统计数据,自动生成。

在这里插入图片描述

😊IDEA中配置Maven

为了使用好Maven,可以对Maven 进行配置,所有选用自己下载了的Maven,而不是IDEA 中所自带的,这样可以更好的利用好用户设置文件(settings.xml)。

相关路径的配置

在这里插入图片描述

参数的配置

-D后面配置的是参数。可以通过System.getProperty("参数名")获取参数值。

在这里插入图片描述

下面俩个地方都要进行配置,配置步骤,地方都是一样的。

在这里插入图片描述

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假正经的小柴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值