MAVEN基础讲解
MAVEN解决的问题
1.当我们开始一个工程的时候往往需要几十甚至上百个jar包,如果没有一个管理工具的话,结果就是每个都需要自己手动导入工程目录,并且还有可能发生jar包冲突,版本冲突等问题
2.在测试项目之前我们需要写一些单元测试来进行自测,MAVEN就可以自动运行给我们检测代码质量
3.最后就是打包,虽然现在编译工具也是支持打包的,但是 用MAVEN的话一键就可以打包完成。
4.传统的web工程中的jar包是在项目中的 而用MAVEN开发的项目jar包是在一个jar仓库中的 通过jar包的一个地址就可以找到并使用 虽然少量项目并不能看出MAVEN的简便,但是当很多项目同时依赖很多同样的jar的时候,就会发现用MAVEN会使项目大小成倍数的减小 我们平时所说的依赖管理就是指maven工程对jar包的管理。
MAVEN仓库
MAVEN有3种仓库
本地仓库
远程仓库(私服)
中央仓库
本地仓库中存放的是系统盘中的jar包 , 当本地仓库中没有就会联网去中央仓库中找需要的jar包 , 但是中央仓库中包含所有开源的jar包 量是非常的大的 所以就有了私服的概念, 我们需要的jar包先由远程仓库去中央仓库中下载 然后在本地中连接远程仓库使用 , 远程仓库中的jar包还可以来自本地上传
MAVEN标准目录结构
src/main/java目录 放置核心代码部分
src/main/resources目录 放置配置文件部分
src/test/java目录 放置测试代码部分
src/test/resoutces目录 放置配置文件
src/main/webapp目录 放置web工程(放置前端页面资源)
MAVEN常用命令
mvn clean 删除本地编译的所有信息
mvn compile将src main下代码进行了编译 放在target目录下
mvn test 将src test 和src main目录下java文件编译成class文件放在target目录下
mvn package 同样可以将src test 和src main目录下java文件编译成class文件放在target目录下 并且将文件打包成相对应的jar包或者war包(由pom文件中自己想要的类型决定)

mvn install 同样可以编译 打包 他还将打包的文件存进了本地仓库
mvn deploy 发布
MAVEN概念模型图

项目对象模型
包含项目自身信息
项目运行所依赖的jar包信息
项目运行环境信息 jdk Tomcat信息
依赖管理模型
公司组织名称
项目名
版本号

plug-in
每一个构建项目的命令都对应了maven底层一个插件(compile,test,package,install,deploy)
IDEA集成MAVEN插件
打开idea ----> 点击File---->点击Settings---->搜索maven---->双击Maven进行配置


(maven地址不知道是哪里的可以参考我上一篇博客的maven安装配置
https://blog.csdn.net/weixin_44693109/article/details/114262681#comments_15475775)
至此一个项目的maven环境就搭建好了
MAVEN基础讲解的更多相关文章
- Maven 基础标签之版本管理和冲突解决
前言 我们在做java项目的时候由于jar包太多,我们就需要使用maven做项目管理,管理项目的jar包依赖,包括打包上线 maven基础 Maven 是一个项目管理工具,主要用于项目构建,依赖管理, ...
- maven基础知识
1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...
- Verilog语法基础讲解之参数化设计
Verilog语法基础讲解之参数化设计 在Verilog语法中,可以实现参数化设计.所谓参数化设计,就是在一个功能模块中,对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用 ...
- 原生AJAX基础讲解及兼容处理
原文:原生AJAX基础讲解及兼容处理 AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML). AJAX不是新技术 ,但却是热门的技术.它 ...
- JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承
说好的讲解JavaScript继承,可是迟迟到现在讲解.废话不多说,直接进入正题. 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考<面向对象J ...
- Maven基础
Maven基础 maven核心内容:依赖管理. Maven是Apache组织的开源项目,是项目构建工具.用来管理jar包之间的相互依赖关系 Maven是一个项目构建和管理的工具,提供了帮助管理,构建, ...
- Android学习笔记-Adapter基础讲解
本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式 ...
- 第二十四节:Java语言基础-讲解数组的综合应用
数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...
- maven 基础
maven安装链接 maven基础命令: 编译命令:mvn compile 测试命令:mvn test 清空命令:mvn clean 打包命令:mvn package 打包命令:mvn install ...
随机推荐
- docker 启动报错:Docker.Core.Backend.BackendException: Error response from daemon: open \\.\pipe\docker_e
win10 docker启动后报错: Docker.Core.Backend.BackendException:Error response from daemon: open \\.\pipe\do ...
- CF1354F Summoning Minions
考虑我们一定是先放我们选定了\(m\)个数,一定是先放了\(m-1\)个数上去,然后让放上一个不打算选的然后拿下来,白嫖\(b * (m-1)\)的贡献,最后放上一个打算放的. 考虑我们一定是按\(b ...
- 洛谷 P6295 - 有标号 DAG 计数(生成函数+容斥+NTT)
洛谷题面传送门 看到图计数的题就条件反射地认为是不可做题并点开了题解--实际上这题以我现在的水平还是有可能能独立解决的( 首先连通这个条件有点棘手,我们尝试把它去掉.考虑这题的套路,我们设 \(f_n ...
- 洛谷 P4062 - [Code+#1]Yazid 的新生舞会(权值线段树)
题面传送门 题意: 给出一个序列 \(a\),求 \(a\) 有多少个子区间 \([l,r]\),满足这个区间中出现次数最多的数出现次数 \(>\dfrac{r-l+1}{2}\) \(1 \l ...
- Codeforces 979E Kuro and Topological Parity(dp)
题面传送门 题意:有 \(n\) 个点,每个点要么被涂黑,要么被涂白,要么没有颜色. 现在你要: 给没有颜色的点图上颜色(黑色或白色) 在这 \(n\) 个点中连若干条有向边,可以不连通.但是只能从编 ...
- BSA分析
目录 两种算法 1. 欧氏距离(ED)算法 2. SNP-index算法 实操 1. 上游分析 2. 下游分析 两种算法 1. 欧氏距离(ED)算法 mut与wt分别代表突变型混池.野生型混池,A.C ...
- MAC下如何连接安卓(小米)手机进行互传文件?
命令行: brew cask install android-file-transfer AndroidFileTransfer, 在andorid设备和您的mac电脑之间浏览和传输文件: 不论通过什 ...
- perl 获取目录信息
1 #!/usr/bin/perl -w 2 use strict; 3 use FindBin qw($Bin $Script); 4 5 my $rp=$Bin; 6 print "th ...
- mysql-彻底删除方法
一.如果是使用yum安装的mysql,使用如下命令进行卸载(不能确定使用何种方式安装的mysql情况下,按后续步骤一一进行处理即可): yum remove mysql mysql-server my ...
- Angular Service设计理念及使用
官方认为组件不应该直接获取或保存数据, 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务. 而服务就充当着数据访问,逻辑处理的功能.把组件和服务区分开,以提高模块性和复用性. 1.依赖注入 注 ...