MAVEN 快速教程

一.MAVEN概念和安装

​ Maven 是专门用于构建和管理Java相关项目的工具,Maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。 所以用Maven管理Java 项目,你就是专家了 -_-!

Maven 主要用处一:相同的项目结构

使用Maven管理的Java 项目都有着相同的项目结构

  1. 有一个pom.xml 用于维护当前项目都用了哪些jar包
  2. 所有的java代码都放在 src/main/java 下面
  3. 所有的测试代码都放在src/test/java 下面

Maven主要用处二:统一维护jar包

比如说有3个Java 项目,这些项目都不是maven风格。那么这3个项目,就会各自维护一套jar包。 而其中有些jar包是相同的。

而maven风格的项目,首先把所有的jar包都放在"仓库“ 里,然后哪个项目需要用到这个jar包,只需要给出jar包的名称和版本号就行了。 这样jar包就实现了共享

如图所示,在pom.xml里,表示用到了mysql 的jar包,版本号是5.1.30。

需要先配置好JAVA_HOME环境变量;%JAVA_HOME%\bin

下载maven,配置环境变量

我的电脑,右键–》高级系统设置–》高级–》环境变量:

path–》编辑–》新增,写上maven的路径;

D:\apache-maven-3.6.3\bin

命令:mvn -v,可以看到版本号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rfaIXLMb-1591434544839)(E:\政通路\课堂笔记\S2\assets\image-20200527153714918.png)]

核心:依赖管理和一键构建

二. 仓库概念

所谓的仓库就是用于存放项目需要的jar包的。
maven采用一个仓库,多个项目的方式,让多个项目共享一个仓库里的相同jar包。

jar包的管理,从哪里来,这是一个问题???有人说,拷贝过来,拷贝来,拷贝去,问题,中毒。版本不一致,开发者使用jar包版本不一致的问题。

2.1中央仓库

​ 远程存储jar包的仓库,是一个大的集中式仓库,maven

下载jar包—》从哪里下载–》maven中央仓库。maven 会默认从maven官方提供的服务器下载jar包。

仓库默认位置的配置文件:

D:\software\apache-maven-3.6.3\conf\settings.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDGXPE0N-1591434544840)(E:\政通路\课堂笔记\S2\assets\image-20200527154651485.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UNJX6InM-1591434544845)(E:\政通路\课堂笔记\S2\assets\image-20200605144739906.png)]

使用阿里云下载jar包
而官方服务器在国外,因为大家都知道的原因,网速很慢,而且容易卡断。 为了便于快速下载相关jar包,可以使用国内maven 阿里云的下载地址:

打开:

D:\software\apache-maven-3.5.0\conf\settings.xml

在mirrors下新加一个阿里云的镜像地址:

<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

2.2 本地仓库

我们开发的时候,将远程中央仓库的jar包下载到本地仓库,项目读取本地仓库的jar。

setting文件修改仓库位置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-70Rkw8fI-1591434544849)(E:\政通路\课堂笔记\S2\assets\image-20200528093721253.png)]

2.3 私服仓库

​ 公司里面,自己搭建的类似中央仓库的仓库,供本公司开发者使用的集中式仓库。

三.MAVEN原理

​ Maven的基本原理很简单,采用远程仓库和本地仓库以及一个pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。如图1同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小,在执行maven任务时,才会自动下载需要的插件。

POM是项目对象模型(Project Object Model)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qsc2B4qr-1591434544851)(E:\政通路\课堂笔记\S2\assets\wps1.jpg)]

Maven有一个官方的仓库,是一个微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。

基本属性:

groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如org.myproject.mojo生成的相对路径为:/org/myproject/mojo

artifactId:项目的通用名称

version:项目的版本

packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par

name:用户描述项目的名称,无关紧要的东西,可选

url:写明开发团队的网站,无关紧要,可选

其中groupId,artifactId,version,packaging这四项组成了项目的唯一坐标。一般情况下,前面三项就可以组成项目的唯一坐标了。

properties:声明一些常量。如:<file.encoding>UTF-8<file.encoding>引用时 ${file.encoding}

plugin:声明项目中所使用的插件,如热部署时,需要的tomcat插件(放build里面):

<plugins><plugin><artifactId>maven-war-plugin</artifactId></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><configuration>
<!-- 源代码使用的开发版本 --><source>1.7</source>
<!-- 需要生成的目标class文件的编译版本 --><target>1.7</target></configuration></plugin><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><url>http://localhost:8080/manager/text</url><path>/ccc</path><server>tomcat</server><username>tomcat</username><password>tomcat</password></configuration></plugin></plugins>

*依赖关系:(*依赖关系是POM的重要部分*)*

​ junit

​ junit

​ 3.8.1

​ test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qj1Sy6NK-1591434544854)(E:\政通路\课堂笔记\S2\assets\wps2.jpg)]

scope : 依赖范围,默认compile还有test,provided,runtime,system compile(编译范围)、provided(已提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围)。

如何新建一个maven项目

1.配置maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-atyEAfJr-1591434544857)(E:\政通路\课堂笔记\S2\assets\image-20200605145434829.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xS3Gny2d-1591434544858)(E:\政通路\课堂笔记\S2\assets\image-20200605145443266.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JLcewfIm-1591434544861)(E:\政通路\课堂笔记\S2\assets\image-20200605145616471.png)]

2.创建新项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JkODoWPp-1591434544864)(E:\政通路\课堂笔记\S2\assets\image-20200605145705501.png)]

3.创建maven项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x14rXdst-1591434544867)(E:\政通路\课堂笔记\S2\assets\image-20200605145917600.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KoYOz94m-1591434544869)(E:\政通路\课堂笔记\S2\assets\image-20200605150027480.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gL5u354Y-1591434544873)(E:\政通路\课堂笔记\S2\assets\image-20200605150100711.png)]

4.maven项目结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fNbnLj2B-1591434544874)(E:\政通路\课堂笔记\S2\assets\image-20200605150329661.png)]加

5.jar依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yzBL1hAK-1591434544880)(E:\政通路\课堂笔记\S2\assets\image-20200605150636816.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TTMPPCgs-1591434544885)(E:\政通路\课堂笔记\S2\assets\image-20200605150732318.png)]

查看jar包位置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SG23xp0W-1591434544887)(E:\政通路\课堂笔记\S2\assets\image-20200605161131487.png)]

6.测试

在test–>java下新建TestMysql类

public class TestMysql {public static void main(String[] args) {//jdbc:加载驱动;try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}
}

tring[] args) {
//jdbc:加载驱动;
try {
Class.forName(“com.mysql.jdbc.Driver”);

    } catch (ClassNotFoundException e) {e.printStackTrace();}
}

}


MAVEN 傻瓜式快速教程相关推荐

  1. .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)

    .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图 ...

  2. 【华为、荣耀】新版的非华为电脑的多屏协作,傻瓜式操作教程

    很多伙伴反应,华为多屏协作一直提示"正在加载服务,请稍后-",小编已解决该问题,而且方法极其简单: EMUI11(Magic4)已发布,多屏协同也进化到了第三版:需先更新到最新版的 ...

  3. 全网最全抓包攻略丨傻瓜式Fiddler教程大全丨手把手从安装到抓包

    前言 在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具. 今天,给大家带来最常用的Fiddler的傻 ...

  4. 傻瓜式部署教程2:docker搭建oracle11g数据库

    须知 以下是傻瓜式配置,全部复制照搬即可,待部署熟练了,可自行修改相应的参数等信息. 前提 1.虚拟机 centos7 建议分配40G (因为centos7 内置了docker)2.centos7中已 ...

  5. nnU-Net 如何安装--傻瓜式安装教程

    这是nnU-Net系列第二篇–安装教程 上一篇:nnU-Net介绍篇 nnU-Net只在Linux上测试(ubuntu16.18和20:centOS, RHEL).它也可以在其他操作系统上工作,但我们 ...

  6. cdh6.2离线安装(傻瓜式安装教程)

    CDH6.2离线安装流程 1 安装准备 1.1 cdh6.2 下载方式一: 官网下载 https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x ...

  7. ckeditor+vue 傻瓜式操作教程

    昨天看过很多ckeditor 教程,总结了一下用插件最简单的步骤(公司项目用到的是数学公式) 步骤一:在线配置ckeditor,最后下载后复制到项目 步骤二: 新建一个ckeditor 组件,在组件里 ...

  8. win7 php搭建博客,win7下wordPress本地搭建博客详解(深度亲测整理—傻瓜式详细教程) | 学步园...

    搭建一个wordPress作为一个个人博客本来是特别简单的事情,但是网上的各种转载让初学者举步维艰,我就本身条件而言,会java EE,懂mysql都花费了我好长时间才搭建好本地博客. 注意:这个是本 ...

  9. python 3.10.2 的傻瓜式安装教程(附环境安装和配置教程)

    本文所介绍的"python 3.10.2"的安装主要包括以下内容: 目录 软件介绍 新功能介绍 软件获取 软件安装 环境配置 软件介绍         Python 是一门流行的编 ...

最新文章

  1. ARouter 源码历险记 (一)
  2. 转载:比Python快100倍,利用spaCy和Cython实现高速NLP项目
  3. python len函数_知识清单Python必备的69个函数,你掌握了吗?
  4. c#:winform鼠标拖动窗口大小时,设定窗口最小尺寸
  5. linux之history和!命令联合使用
  6. corpus  academic writing
  7. 计算机网络学习笔记-1.1.4-时延、 时延带宽积、RTT和利用率
  8. Metricbeat添加ip address信息
  9. [Node.js] node.js入门
  10. 怎么看电脑能不能升级win10系统|检测电脑适不适合安装win10的方法
  11. mysql的备份与恢复_实验十一 MySQLl备份与恢复1
  12. Python自带函数map(),zip()等
  13. 方舟生存进化刷精英恐龙代码
  14. 矩阵与矩阵的转置相乘
  15. ARX助手最新版适配多版本
  16. Android Studio 文件名颜色代表含义
  17. 用Python验证指数基金定投策略
  18. R语言绘制生存曲线估计|生存分析|如何R作生存曲线图
  19. graphpad prism横坐标怎么设置不显示数值_Graphpad Prism 的 4 个隐藏技能助你轻松发表 SCI...
  20. Laravel-hyn/multi-tenancy多租户扩展的使用

热门文章

  1. C++ template类模板实现栈 pop push
  2. dart系列之:安全看我,dart中的安全特性null safety
  3. 密码学系列之:feistel cipher
  4. 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式
  5. Leecode题解汇总(附题型归类)
  6. 什么是servlet?servlet的作用?——计算机网络系列学习笔记
  7. 【Mark 常用方法】Html中<form>标签作用和属性详解
  8. 算法竞赛入门经典(第二版) | 例题5-2 木块问题 (紫皮书牛啤!)(UVa101,The Blocks Problem)
  9. Linux网络DNS分离解析
  10. c语言源程序要求每行只能书写一条语句,C语言章节习题集(全)