Maven的简介|学习笔记

简介: 快速学习Maven的简介

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术Maven的简介学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15962


Maven的简介


内容介绍:

一、Maven 是什么

二、Maven 的目录结构

三、Maven 与 pom 文件的关系

 

一、Maven 是什么

1.Maven 的两个作用

Maven 是阿帕奇下一个纯 JAVA 的开源项目,它主要是用来管理项目的构建,依

赖,以及生成报告和文档等步骤。 

maven 是跟 IDE 无关的,所以无论在哪个 IDE 的平台上 maven 都提供了一样的操作接口,它最主要的作用第一个是自动构建。用来编译,打包英文程序,第二个是依赖管理用来管理我们在程序中所需要的架包,管理架包的方式是它提供了一个中央仓库和本地仓库,所以用 maven 管理架包不需要把它引入到工程中,只需要

 maven 中去描述它需要什么样的架包, maven 会从中央仓库下载到本地仓库,

从本地仓库里关联到工程中

2.架包的管理

所以架包曾经用过或本地仓库有则无需在中央仓库中下载,如本地无则需在中央仓库下载,本地的 maven 默认在每个用户的用户目录的 mr 目录下,如果在 maven 的架包出现混乱时,我们可以选择把用户目录 mr 目录删除,这

 maven 会从中央仓库重新下载架包。

3.存放规定

对于在项目中的所文件, maven 提供了一个标准的目录结构,这个目录结构规定我们的生产代码,测试代码放在什么样的目录下已及命名方式。这样所有的程序

员的协作工作时所有的东西都会按照一定的规定存放。

 

二、Maven的目录结构

1.Maven的两个目录结构

Maven 默认的目录结构是这样的,它主要分为两个目录:一个是 src所有的源代码以及资源文件都放底下、另一个是 target 目录所有编译代码以及所有的要用的资源

文件都会拷贝到target上。最后打出的架包和 war 包也在 target 中。

image.png

2、maven工程

除了两个目录外它还需要 pom文件,pom 文件位于整个根目录底下,所以从根目录进去看一个 maven 的工程就是一个 pom 文件和一个 src 文件,如果说经过编译

打包后还会出现一个 target 目录。

详细看 src 目录点开可以看见一个 main目录和一个 test 目录, main 目录是用来放生产代码和生产的资源文件, text 目录是用来放测试目录和测试的资源文件。

在 main 下可以看到 Java 目录夹和 resources 目录夹,所有的 Java 源代码都放在

了 Java 文件夹中,而 resources 文件夹放的是各样的配置文件以及静态文件。

image.png

Maven 的工程在编译时会把 resouces 目录里的文件和 Java 目录中间编译出的 classes 文件合并最后根据各自的目录结构拷贝到一起,打包形成架包或者 war

包,这个是 src 目录。

target 目录结构和 src 结构一样的, src 下放的是代码, target 放的是测试所用的

资源。这是 maven 标准的目录结构。


三、Maven与pom文件的关系

1、pom文件的作用

Maven 管理这么多东西但是它所有的信息都是管理在pom 文件中的。Pom 文件定义了项目的基本信息,描述了用户如何去构建打包。以及声明项目要引入多少这样的架包,也就是项目依赖。使用这样的pom 文件可以大大简化我们开发和构建的过

程,是的我们整个的项目管理与具体的ide 无关。

2、Autowiredemo 工程中的 pom 文件

Autowiredemo 工程的 pom 文件,它是一个非常简单的工程,其中的内容不多。

主要看 pom 文件的主要结构,在 Autowiredemo 的pom 文件中详细的展示了主要的标签注释。

image.png

首先看到的是一个标记,这个标记的文件是一个插面文件它的编码是 tf-8 来写的, pom 文件的内容都在 project 的标记里, project 的头不要去动它,下面的 model vision 也不动表示的版本是4.0,真正写的内容从后面开始,后面写的 parent 定义的是 pom 文件的继承关系,它可以继承负 pom 文件中的所有定义然后在当前 pom 文件中进行修改以及增加新的定义,在 parent 后我们看到了 groupid 和 artifactid ,这两个 id 合起来构成了这个工程唯一的标识,然后是它的版本号 version ,在每次发布新的版本都需要给它一个版本号,之后是它的描述信息,在后面是它的打包方式。

3.spring boot 功能的两种格式

对于 spring boot 的功能来说主要是两种格式,一种是带了 servelt 容器价格式,还有一种是不带 ervelt 容器的 war 格式。 War 包是需要把它部署到 servelt 的应用服务器里的。Packaging 后面可以看到 propertise 定义, propertise 定义是定义在pom 文件中会重复用到的一些词,所以这里用 propertise 定义是可以直接去引用 propertise ,当然我们可以在这里去设定一些 maven 的属性,这里可以看到我们设定一些工程构建时的正负极的格式tf-8, propertise 后看到的是依赖关系的定义, maven 的一个主要的工作是来管理工程中间所需要的架包,工程中间所需要的架包都在 dependencies 里,每一个 dependencies 都是一个独立的架包,

image.png

dependencies 后面看到的是一个构建的插件,我们知道 maven 是依赖于插件来完成各种功能的,所以需要用到哪个插件就在 plugin 里头把它写进去

image.png

最后看到的 reposities 是仓库的定义,如果不叫这一部分的话用的是国外的中央仓库会使得我们的架包下载的比较慢,所以我们一般会定义一个国内的 maven 仓库

镜像,我们在这类中间看到的定义是阿里云的 maven 的仓库镜像。

相关文章
|
Java 应用服务中间件 Maven
Maven简介及配置使用
Maven简介及配置使用
596 0
|
6月前
|
存储 Oracle Java
Maven高级-私服简介与安装及私服仓库分类
Maven高级-私服简介与安装及私服仓库分类
129 0
|
2月前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
243 81
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
1月前
|
Java Devops 持续交付
Maven学习笔记(二):Maven基础(基于IDEA)
【10月更文挑战第1天】Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。上一篇简单介绍了Maven的基础知识,本文主要介绍IDEA上的实际使用场景。内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。仅供参考。
172 0
Maven学习笔记(二):Maven基础(基于IDEA)
|
6月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
296 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
3月前
|
Java 测试技术 Maven
Maven学习笔记
这篇文章是关于Maven的学习笔记,包括Maven简介、项目构建工具比较、Maven的四大属性(依赖管理、多模块构件、一致的项目结构、一致的构件模型和插件机制)、Maven的安装和配置、IDEA集成Maven环境,以及Maven项目创建、仓库概念、多模块项目构建、打包操作和依赖概念的详细介绍。
|
3月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
6月前
|
XML Java 大数据
答应粉丝的Maven仓库学习笔记,今天它来了 一起来学习快速入门Maven
答应粉丝的Maven仓库学习笔记,今天它来了 一起来学习快速入门Maven
113 1
|
6月前
|
IDE Java Apache
Maven简介&安装配置及基本使用
Maven简介&安装配置及基本使用
197 0