Maven

Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),其表现于一个XML文件(pom.xml),其中包含了项目的基本学习,依赖关系,插件配置,构建路径等等

为什么使用Maven

  • 导入第三方jar包更便捷:之前我们在使用第三方框架时骂我们会把jar包复制粘贴到WEB-INF/lib包下.每次创建新工程时都要重复一般繁琐的步骤,当使用maven,其会将每个jar包在maven本地仓库中保存一份,需要jar包的工程只要以坐标的方式简单引用一下即可.大大节约空间,让项目更加轻巧

  • 连带依赖jar包:jar包往往不是独立的,许多jar包需要依赖于其他jar包才能进行工作.每当我们去引入一个新的jar包,我们并不知道这个jar包是否依赖于其他的jar包.若使用maven,可以自动将当前jar包所依赖的其他jar包全部注入进来,无需人工参与,节约了大量的人力精力

  • 获取规范的jar包:在开发过程中我们会使用很多jar包,每个jar包的获取方法不同,在网上早的jar包,或许是不规范的,是不可以使用的,而maven可以为我们提供一个完全统一规范的jar包管理体系

  • 将项目进行模块化管理:随着项目的扩大其不能简单的通过package结构来划分模块,因为会造成jar包的多次导入,非常不方便,这时候必须得将项目拆分为多个工程进行协同开发,这样每个jar包只需到maven仓库中导入即可

Maven的原理

Maven仓库

maven仓库是其原理的重要一部分,Maven中任何一个依赖,插件,或项目构建的的输出都可称之为构件

  • 两类仓库

    maven仓库分为本地仓库于远程仓库,寻找构件时,首先会在本地仓库中寻找,若没找到则跳转至远程仓库寻找;在原创仓库中找到之后就将其下载至本地仓库以便下次使用

  • 本地仓库:在下载完maven,若不配置本地仓库地址,则maven会将其默认配置到C盘.因此我们需要手动配置:打开maven文件→找到conf文件夹→打开setting,xml文件

在setting.xml文件中55行打上一个标签

 <localRepository>路径地址</localRepository>

这样本地仓库就配置好了

  • 远程仓库:

    • 远程仓库下又分为:中央仓库,私有仓库,镜像仓库

      • 中央仓库:是Maven社区维护的一个公共仓库,包含了大量的常用Java库和构件.Maven默认会从这里下载依赖,但毕竟是外网,国内下载较慢,不推荐,通常把中央仓库地址给注释掉
      • 镜像仓库:镜像仓库是为了加速依赖下载而设置的仓库,通常位于同意局域网内,可以作为中央仓库的镜像,下载速度较快,推荐的方法,通常使用阿里巴巴进行仓库
    • 在setting.xml文件中找到<mirrors>标签将其中的原始<mirror>标签注释掉将其换成阿里巴巴的镜像网站即可体验高速下载
      <!-- 阿里巴巴镜像Maven网址 -->
    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

在IDEA中配置Maven

  • 在IDEA工作去上方菜单找到File,下拉选择Setting

  • 在弹出对话框中,展开“Build,Execution,Deployment”,在 Build Tools 下选择 Maven,如下图

  • 在 Maven home path 中,指定本地 Maven 的位置

  • 勾选 User Settings file 后面的 Override,并指定本地仓库的 setting.xml 文件

  • 勾选 Local repository 后面的 Override,并指定本地仓库的地址

  • 打开新项目配置重复上面的操作

创建Maven项目

Maven的多级模块项目

在实际开发过程中,我们所接触的项目都是比较大型的,因此通过合理的模块拆分,可以实现代码的复用便于维护利用

创建maven_parent父级模块

父级模块的作用是统筹每个子模块的开发工作

  • 在IDEA中直接创建一个Maven项目

  • 接着什么都不用选

  • 将其中的src目录删除

创建maven_common

common模块用于封装那些在整个项目中多个模块都需要使用的公共代码和资源.common模块可以包含各种工具类,常量,配置文件,实体类等等

  • 在已经创建的父级maven右键选择New→选择module

  • 创建模块时选择maven→选择quickstart

  • 其余的项目文件都是类似的只是我们需要选择webapp模板

依赖管理

maven通过pom.xml文件管理项目中会用到的依赖

  • 使用了maven的多级模块时每个模块中会存在自己的pom.xml文件,称之为子模块
  • 子模块中的pom.xml文件通常会继承父模块的配置,也可以添加特定的模块依赖

依赖的注入

  • 依赖的基本结构
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
  • 坐标

    • groupld, artifactld, version :依赖的基本坐标, 对于任何一个依赖来说,基本坐标是最重要的,Maven是根据坐标才能找到需要的依赖
    • 使用这三个坐标就可以确定一个依赖
  • 关于maven依赖的坐标可以去阿里镜像网址查询https://developer.aliyun.com/mvn/search

Maven 使用方法的更多相关文章

  1. 从svn资源库目录checkout出maven项目方法

    从svn资源库目录checkout出maven项目方法,如下图所示:

  2. MyEclipse使用心得:集成和使用Maven的方法

    MyEclipse下载:http://www.myeclipsecn.com/download/ 第一步:下载和安装 1.官网下载Maven:http://maven.apache.org/downl ...

  3. Ubuntu下配置jdk及maven等方法

    从/etc/profile文件代码得知系统启动会把/etc/profile.d目录下面所有的.sh文件进行加载,如果在其中新建.sh文件用来设立环境变量等,系统启动后也会加载到它们.另外一种方法就是修 ...

  4. 使用国内阿里maven私服方法

    方法1,在maven的config下setings.xml文件中加入以下代码 <mirrors> <mirror> <id>mirrorId</id> ...

  5. Eclipse 无法引用到Maven 解决方法

    问题描述:打开Eclipse进入java EE视图下,发现原有的Maven Dependencies目录不存在,显示的是org.maven.ide.eclipse.MAVEN2_CLASSPATH_C ...

  6. 项目管理工具:Maven使用方法总结

    阅读目录 一.概念 二.Maven安装 三.常用命令 四.生命周期 五.第一个Maven项目 六.POM文件 七.Maven库 八.参考资料 回到顶部 一.概念 Maven是一个项目管理和构建自动化工 ...

  7. Windows下安装和配置Maven的方法及注意事项

    首先,从http://maven.apache.org/download.cgi网站上下载适用于当前操作系统操作格式的最新版本的maven安装包.如:apache-maven-3.2.5-bin.zi ...

  8. 执行maven install跳过执行maven test方法(网上搜的记录一下,方面以后使用)

    直接在pom文件加上这段配置就可以了 <plugin>           <groupId>org.apache.maven.plugins</groupId>  ...

  9. idea2018.3.6,离线使用maven的方法

    (1)想办法拷贝联网电脑上已经下载好的仓库文件夹mavenRepository到离线环境的电脑上: (2)idea中按照如下图中配置: (3)打开 User settings file中设置的sett ...

  10. Maven学习链接

    别人的资料很多且写的很详细,我这里先收藏,等学习到一定阶段且有时间再整理自己的积累. 1.eclipse安装maven插件方法: http://blog.csdn.net/kittyboy0001/a ...

随机推荐

  1. LeetCode860. 柠檬水找零

    题目链接:https://leetcode.cn/problems/lemonade-change/description/ 题目叙述: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元.顾客排队购买你的 ...

  2. 是否可以在线创建ios证书

    生成苹果证书,假如使用官方的教程去生成,非常麻烦,因为它需要使用苹果mac电脑去生成,而且生成的流程还要对苹果电脑的证书导入和导出比较熟. 因此,生成苹果ios证书,不建议使用官方的方法去生成,少走弯 ...

  3. jpa+querydsl的平替国产easy-query最好用的orm

    jpa+querydsl的平替国产easy-query最好用的orm 一款国产最强java orm,完美支持可控强类型dsl,外加完美支持对象模型筛选拉取的orm,拥有非常智能的include(s)一 ...

  4. 【Java】Collection子接口:其二 Set 组接口

    Collection子接口:其二 Set 组接口 - Set接口是Collection的子接口,Set没有提供额外的方法 - Set集合中不允许包含重复的元素,如果重复添加,只保留最新添加的那一个 - ...

  5. 【SpringBoot】04 初探YAML与配置

    什么是YAML? https://www.cnblogs.com/mindzone/p/12849789.html 复合结构的语法 一个标配JavaBean public class Person { ...

  6. baselines算法库common/vec_env/subproc_vec_env.py模块分析

    模块代码: import multiprocessing as mp import numpy as np from .vec_env import VecEnv, CloudpickleWrappe ...

  7. Vector源码解读

    1.背景 阅读源码是提高编程技能的有效方式... 面试中也经常问到源码相关的问题..... 2.源码解读 在解读Vector时大家可以先解读ArrayList,因为这个两个的逻辑几乎是一样的.... ...

  8. 如何在AWS上构建Apache DolphinScheduler

    引言 随着云计算技术的发展,Amazon Web Services (AWS) 作为一个开放的平台,一直在帮助开发者更好的在云上构建和使用开源软件,同时也与开源社区紧密合作,推动开源项目的发展. 本文 ...

  9. 你要的高效方案!基于Apache SeaTunnel快速集成SAP进入Redshift

    摘要 本文深入探讨了Apache SeaTunnel及其商业版可视化数据同步平台WhaleTunnel在数据整合领域的应用,特别是如何高效地将SAP系统中的数据同步到Amazon Redshift.通 ...

  10. 在一串字符串中Java使用正则匹配电话号码的方法

    1.使用正则表达式来匹配电话号码 在Java中,使用正则表达式匹配电话号码是一个常见的需求.电话号码的格式可能因国家/地区而异,但一个典型的格式可能是这样的:(123) 456-7890.在这个例子中 ...