Maven探索

1. 主要内容


  1. Maven简介
  2. Maven的安装配置和结构目录
  3. IDEA编辑器集成Maven环境
  4. Maven项目的创建
  5. Maven仓库的基本概念
  6. Maven环境下构建多模块项目
  7. Maven的打包操作
  8. Maven依赖的基本概念

2.Maven的简介

2.1.简介


​ Maven主要体现在项目和管理两个方面,从技术上说,Maven中我们可以通过配置文件的方式来对项目进行管理,对项目的依赖,配置,名称,版本号等进行描述从而进行管理。

​ Maven仓库则是针对某些项目会依赖于其他项目或者说是第三方的插件,将其放入仓库中供开发中的项目使用。

​ Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

​ POM:项目对象模型

​ 项目构建:提供标准的,跨平台的自动化项目构建方式

​ 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题。

​ 统一开发结构:提供标准的,统一的项目结构

2.2.项目构建


2.3.项目构建工具


​ Maven仍然采用xml作为文件配置格式

2.4.Maven的四大特性


2.4.1.依赖管理系统

​ Maven提供了一个新的依赖管理系统:jar包管理。jar升级时仅去修改配置文件即可。

​ Java中我们可以使用groupId(公司Id)、artfactId(项目Id)、version(项目版本)组成的Coordination(坐标)唯一标识一个依赖。

​ 示例代码如下:

<dependency>
	<groupId>javax.servlet</groupId>	com.baidu		<!--需要一个servlet依赖-->
    <artifactId>javax.servlet-api</artifactId>	ueditor echarts
    <version>3.1.0</version>
</dependency>

坐标属性的理解

​ Maven坐标为各种组件引入了秩序,任何一个组件都必须明确定义自己的坐标。Maven中的坐标用于描述仓库中资源的位置。

​ Maven坐标的作用:使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。

groupId

​ 定义当前Maven项目隶属的实际项目__公司名称。在Maven中,一个实际项目往往会被划分成很多模块。例如spring是一个实际项目,而spring_core,spring_webmvc等就是Maven模块。

artfactId

​ 该元素定义实际项目中的一个Maven模块__项目名,一般是使用项目名作为前缀,如:spring_bean,spring_webmvc等。


version

​ 该元素定义版本

2.4.2.多模块构建

​ 将一个项目分成多个功能模块,进行模块化的开发和测试。

2.4.3.一致的项目结构

​ Maven框架统一了项目的目录结构。

2.4.4.一致的构建模型和插件机制

3.认识Maven目录结构


​ Maven项目目录结构:

目录目的
${basedir}存放pom.xml和所有的子目录pom是Maven项目所需的所有jar包和插件的依赖。
${basedir}/src/main/java项目的java源代码
${basedir}src/main/resources项目的资源(配置文件),比如说property文件
${basedir}src/test/java项目的测试类,如JUnit代码
${basedir}src/test/resources测试使用的资源

小拓展

​ xxxAPP版本号为a.b.c-里程碑

​ 其中第一个x:大版本更新,有重大变革

​ 第二个x:小版本更新,修复了bug,增加了功能

​ 第三个x:更新

​ 里程碑版本:

​ SNAPSHOT (快照/开发版)

​ alpha (内部测试)

​ beta (外部测试)

​ Release | Rc (发布版)

​ GA (稳定版/正常版)

4.Maven命令


​ Maven命令格式如下:

mvn+空格+[piugin-name//插件的名字]+ :+[goal-name//命令的名字]

5.Maven创建Java项目


​ Idea->File->New->Project->Maven->勾选Create->选择maven-archetype-quickstart->起公司ID和项目ID->起项目名字->结束。

6.Maven创建Web项目

​ Idea->File->New->Project->Maven->勾选Create->选择maven-archetype-webapp->起公司ID和项目ID->起项目名字->结束。


6.1Mavenweb项目在启动前需要修改项目

6.1.1.修改JDK的版本
<!--将JDK的版本改为1.8-->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
6.1.2.修改JUnit的版本
<!--改为需要的版本-->
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
6.1.3.将xml文件中的pluginManagement标签中的东西删除

​ 上面标签是表示插件声明,声明会在当前项目中加载piugins声明的插件。

pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,maven不会加载该插件,pluginManagement声明可以被继承。

pluginManagement的一个使用案例是当有父子项目的时候,父项目中可以利用pluginManagement声明子项目中需要用到的插件,之后,当某个或者某几个子项目需要加载该插件的时候,就可以在子项目中plugins节点中使用。

pluginManagement一般是用来在父POM中定义,提供给子POM使用。子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,而不用指定版本,同时也方便统一管理;而在父POM中的pluginManagement并不会介入到Maven的生命周期。

7.Maven仓库的概念

​ Maven仓库分本地仓库和远程仓库。

​ **仓库:**用于存储资源,包含各种jar包

​ Maven根据坐标寻找构件时,先查看本地仓库,本地没有就去远程仓库查找并下载,若远程仓库也没有,则报错。

​ 远程仓库分为中央仓库,私服和其他公共库。

​ 中央仓库是默认配置下,Maven下载jar包的地方。

8.Maven多模块的创建

8.1创建多模块

​ Idea->File->New->Project->Maven->不勾选Create->起公司ID和项目ID->起项目名字->结束。

​ 此处项目ID应为xxxx_prant(基模块)

​ xxxx_prant->Maven->勾选Create->选择maven-archetype-quickstart->输入项目ID:xxxx_dao->结束。

​ xxxx_prant->Maven->勾选Create->选择maven-archetype-quickstart->输入项目ID:xxxx_service->结束。

​ xxxx_prant->Maven->勾选Create->选择maven-archetype-webapp->输入项目ID:xxxx_controller->结束。

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值