Maven(一)——快速上手Maven

文章目录

    • Maven概述
    • Maven简介
    • Maven的安装
    • Maven的基本使用
    • IDEA配置Maven
    • 依赖管理
    • 依赖范围

Maven概述


Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

(一)提供了一套标准化的项目结构

不同的IDE项目结构是不一样的,如IDEA创建的项目导入eclipse是运行不了的。但maven提供了一个标准,使得项目可以在不同的IDE中都可以成功运行。

maven标准化后的项目结构如下:

image-20220525123339198

(二)提供了一套标准化的构建流程

Maven提供了简单的指令使得可以简单的完成一系列的操作。

image-20220525123510333

(三)提供了一套依赖管理机制

依赖管理:管理你项目所依赖的第三方资源,如jar包、插件等。

image-20220525123936736

对于依赖管理来说,下载jar包和版本问题很繁琐,而通过maven的配置文件进行简单的配置就可以完成这个过程。

image-20220525124202589

项目管理中不仅仅只有maven这样的工具,但是从下面的市场占有率来看,maven的确是目前项目管理的主流。

image-20220525124352641


Maven简介


Apache(阿帕奇基金组织) Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。如果想了解详细内容可以前往官网Maven – 欢迎来到 Apache Maven。

Maven模型如图所示:

image-20220525125055511

项目对象模型如下:

image-20220525125414360

依赖管理模型如下:

image-20220525125346735

对于上面的示例图片中,我们需要关注一个结构,这个结构我们称其为jar包:

<groupId></groupId> //项目隶属的组织名称
<artifactId></artifactId> //模块名称
<version></version> //项目版本号

通过简单的命令就可以找到各种jar包并不是突然的,这个jar包都在maven仓库中。

Maven的仓库分为三种:本地仓库,中央仓库和远程仓库。本地仓库有一些常用的jar包;中央仓库是由Maven团队维护的全球唯一的仓库,这个仓库中拥有齐全的开源jar包;而远程仓库(私服)一般由公司团队搭建的私有仓库,毕竟中央仓库不再国内,连接下载的速度很慢,为此,搭建一个私人的仓库,结构和Maven团队的仓库差不多是十分必要的。

当项目需要导入所需的jar包,maven首先先去本地仓库寻找,如果存在则直接导入,如果不在则去中央仓库寻找并下载,下载到本地仓库后再导入项目。

如果私人或公司假设了远程私服仓库,那么项目在导入所需jar包时如果本地仓库没有,则需去远程仓库找,如果远程仓库找不到则需去中央仓库下载,不过一般私服是完全克隆中央仓库的,所以应该不存在找不到的问题


Maven的安装


下载Maven

从官网中下载Maven.zip包。

image-20220525132221409

点击download进入以下页面。

image-20220525132252253

点击指示位置,稍等几秒下载完毕,下载后解压在一个你喜欢的位置。

配置环境变量

接下来配置环境变量,赋值你maven包的根位置。

image-20220525132401719

然后打开环境变量,在系统变量下新建一个MAVEN_HOME,将maven安装的位置粘贴进去。

image-20220525132446690

然后点击系统变量中的path,进行编辑,然后新建%MAVEN_HOME%\bin,如下所示:

image-20220525132528331

做完上述的一切后打开cmd,然后输入mvn -version查看mvn是否安装成功。

image-20220525132724101

配置本地仓库

在maven创建一个目录mvn_resp,而后我们将使用这个目录作为maven的本地仓库。

image-20220525133131243

而后打开apache-maven-3.8.5\conf\setting.xml。我们要修改本地仓库信息。找到这一行:

image-20220525133353506

找到后将刚刚创建目录的位置复制给它即可。

配置阿里云私服

同样地,修改该配置文件setting.xml中的mirrors标签。

image-20220525133742956

我们复制如下的xml内容并粘贴到mirror标签中。

<mirror><id>alimaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>

image-20220525134032372

Maven的基本使用


命令使用

如果你想要用Maven的标准格式创建一个项目,只需在选择项目时以Maven的形式创建即可。

image-20220525140508330

image-20220525143733886

在没有配置IDEA的情况下,我们可以在项目根目录打开黑窗口来完成编译、清理、测试、打包、安装等一系列操作。

mvn compile
mvn clean
mvn test
mvn package
mvn install

生命周期

对于同一个生命周期来说,如果你执行后面的命令,前面的命令会自动执行。

maven的生命周期分为三段,分别是clean清理工作,default核心工作和site产生报告和发布站点。

image-20220525142611426

IDEA配置Maven


一般来说IDEA自带Maven,但是我们可以使用自己的maven。

image-20220525143027232

然后还需修改配置文件和本地仓库。

image-20220525143224316

导入maven项目

image-20220525144241285

依赖管理


怎么写依赖模板相信通过前面的学习都已了然于心了。

只需写出坐标结构,然后写出你想要的模块名称,本地仓库就会自动提示。

导入后,如果本地仓库没有该jar包,你可以点一下下图那里的按钮,他能够去中央仓库或私服下载。

image-20220525150429179

同样地,当你将依赖的xml内容删掉时,我们也需要按那个按钮,使jar包消失。

如果你使用的是IDEA,可以在配置文件下按alt+insert选择depandency快速搜索jar包。IDEA会自动帮你写好依赖模板。

总结如下:

  • 在pom.xml中编写<dependencies>标签
  • <>标签中使用<dependency>引入坐标
  • 定义坐标的groupid,artifactid,version
  • 点击刷新按钮,使坐标生效

依赖范围


通过设置坐标的依赖范围,可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。

image-20220525151724343

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EntityFramework_MVC4中EF5 新手入门教程之三 ---3.排序、 筛选和分页

在前面的教程你实施了一套基本的 CRUD 操作&#xff0c;为Student实体的 web 页。在本教程中&#xff0c;您将添加排序、 筛选和分页到 StudentsIndex的功能。您还将创建一个页面&#xff0c;并简单分组。 下面的插图显示页面当你完成时的样子。列标题是链接&#xff0c;用户可…

fluentd主从配置

fluentd是一个免费的、完全开源的日志管理工具&#xff0c;可以对日志进行收集、处理、存储。对于一些高流量的网站或者特殊的架构&#xff0c;需要fluentd高可用配置。 以下是在测试环境搭建模拟fluentd主从配置&#xff0c;模拟主从切换。 服务器 服务 192.168.199.1 elas…

Hadoop总结

目录 大数据概述 Hadoop大数据开发平台 资源管理YARN 分布式文件系统HDFS 非关系型数据库NOSQL 分布式数据库HBASE 批处理和MapReduce 数据仓库查询分析和Hive 基于内存计算的Spark 流计算和Flink 图计算和PREGEL Hadoop常用命令总结 大数据概述 大数据的4V&#x…

HDFS的常用操作

1、HDFS文件的权限以及读写操作 HDFS文件的权限&#xff1a; •与Linux文件权限类似 •r: read; w:write; x:execute&#xff0c;权限x对于文件忽略&#xff0c;对于文件夹表示是否允许访问其内容 •如果Linux系统用户zhangsan使用hadoop命令创建一个文件&#xff0c;那么这个文…

并行计算总结

作者&#xff1a;ArimaMisaki 目录 1 并行计算概述. 2 1.1 基本概念. 2 1.2 存储器的层次结构. 3 1.3 并行计算. 3 1.4 动态互连网络. 4 1.5 并行计算机结构模型. 5 1.6 并行算法的基本设计策略. 6 1.7 并行编程风范. 6 1.8 单核多线程和并发执行. 7 1.9 拓展&#x…

基础总结篇之中的一个:Activity生命周期

子曰&#xff1a;溫故而知新&#xff0c;能够為師矣。《論語》 学习技术也一样&#xff0c;对于技术文档或者经典的技术书籍来说&#xff0c;指望看一遍就全然掌握&#xff0c;那基本不大可能&#xff0c;所以我们须要常常回过头再细致研读几遍&#xff0c;以领悟到作者的思想精…

数据结构杂谈(九)——二叉树的遍历

9 二叉树的遍历 文章目录9 二叉树的遍历9.1 递归函数基础9.2 深度优先遍历的实现9.3 二叉树层次遍历9.1 递归函数基础 什么是递归&#xff1f;调用自身就是叫递归&#xff0c;如下所示&#xff1a; void r(){r(); }我们习惯借用阶梯图来帮助我们理解这些知识。如果是同一层函数…

洛谷 P3750 [六省联考2017]分手是祝愿

传送门 题解 //Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<vector> #include<cstdio> #include<queue> #include<cmath> const int N100000,mod100003; #define For(i,a,b)…

解决 error: command 'swig' failed with exit status 1

2019独角兽企业重金招聘Python工程师标准>>> # pip install docker-registry 分析&#xff1a;观察出现的错误&#xff0c;发现最开始报错的地方提示不能找到openssl的.h头文件。一般.h头文件都是放到/usr/inclue目录下的&#xff0c;而且头文件所在的安装包一般叫…

Android安全-SO动态库注入

2019独角兽企业重金招聘Python工程师标准>>> 关于这方面技术&#xff0c;网上已经有大把的实现。在此&#xff0c;我只是记录下自己的学习过程。 0x1 原理 所谓的SO注入就是将代码拷贝到目标进程中&#xff0c;并结合函数重定向等其他技术&#xff0c;最终达到监控或…

BUG日志-2022.7.12——关于VSCode感叹号无法生成HTML骨架问题

解决办法&#xff1a;放弃使用多年的!&#xff0c;而采用html:5的形式。 原因&#xff1a;好像是因为VScode已经更新了 好多扩展也失效了。

hadoop 入门实例【转】

原文链接&#xff1a;http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 1、数据去重 "数据去重"主要是为了掌握和利用并行化思想来对数据进行有意义的筛选。统计大数据集上的数据种类个数、从网站日志中计算访问地等这些看似庞杂的任务都会涉及数据…

AWS安装CDH5.3-CentOS6.4中关键操作步骤

1、在AWS masternode 上下载cloudera-manager-installer.bin安装包 [rootip-172-21-42-114 ~]# wget http://archive.cloudera.com/cm5/installer/latest/coludera-manager-installer.bin 此时会提示&#xff1a;-bash: wget: command not find 所以要现安装wget命令 [rootip-1…

You have an error in your SQL syntax; check the manual that corresponds to...

问题缘由&#xff1a; 使用datagrip插入数据时发生报错 使用插入语句为&#xff1a; insert into ev_name (‘username’,‘password’) values (‘admin’,‘123456’); 错误提示&#xff1a; You have an error in your SQL syntax; check the manual that corresponds to …

getaddrinfo ENOTFOUND 127.0.0.1:3306

错误缘由&#xff1a; 在写nodejs项目时&#xff0c;连接数据库发现找不到数据库。 解决&#xff1a; 发现数据库连接池没有设置端口号&#xff0c;需设置端口号3306。 解决效果&#xff1a; 成功解决

一幅长文细学node.js——一幅长文系列

文章目录1 Node.js概述1.1 初识Node.js1.2 Node.js简介1.3 Node.js安装1.4 使用Node.js运行JS代码2 fs文件系统模块2.1 读取文件2.2 写入文件2.3 路径问题3 Path路径模块3.1 Path模块概述3.2 路径拼接3.3 获取路径的文件名4 Http模块4.1 Http概述4.2 服务器相关的概念4.3 创建W…

一幅长文细学GaussDB(一)——数据库介绍

文章目录1 数据库介绍1.1 数据库技术1.2 数据库技术发展史数据库技术产生和发展数据库三个阶段比较数据库系统优势层次模型网状模型关系模型关系数据库产品历史结构化查询语言SQL面向对象数据模型&#xff08;OO模型&#xff09;数据管理技术的新挑战NoSQL技术特点和类型主要No…

Unity 通过Unity Admob Plugin插件集成admob教程

原创&#xff1a;officemaster.cn下载Unity Admob Demo&#xff0c;插件里面包含Admob_Unity_Demo.unitypackage 插件文件AdmobPluginRes 是Admob 的ios sdk和插件使用样例代码打开样例代码可以看到代码里面如何使用Unity Admob插件把Admob Unity插件添加进unity工程1. 打开Un…

一幅长文细学华为MRS大数据开发(一)——大数据时代的挑战和机遇

文章目录1 大数据时代的挑战和机遇1.1 大数据基础概念大数据时代的发展大数据定义大数据的4V大数据处理和传统数据处理的差异并行计算相关知识1.2 大数据应用领域大数据金融应用大数据教育应用大数据公共安全应用大数据交通规划应用1.3 大数据计算计算任务的分类大数据应用的主…