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 ...
随机推荐
- 数值分析:矩阵奇异值分解(Numpy实现)
1. 奇异值分解(SVD) (1)奇异值分解 已知矩阵\(\bm{A} \in \R^{m \times n}\), 其奇异值分解为: \[\bm{A} = \bm{U}\bm{S}\bm{V}^T ...
- 洛谷 P6189 - [NOI Online #1 入门组]跑步(根号分治+背包)
题面传送门 题意: 求有多少个数列 \(x\) 满足: \(\sum x_i=n\) \(x_i\geq x_{i+1}\) 答案对 \(p\) 取模. ...你确定这叫"入门"组 ...
- 一类巧妙利用利用失配树的序列DP
I.导入 求长度为\(\text{len}\)的包含给定连续子串\(\text{T}\)的 0/1 串的个数.(\(|T|<=15\)) 通常来说这种题目应该立刻联想到状压 DP 与取反集--这 ...
- 快速傅里叶变换(FFT)随笔
终于学会了FFT,水一篇随笔记录一下 前置知识网上一大堆,这里就不多赘述了,直接切入正题 01 介绍FFT 这里仅指出FFT在竞赛中的一般应用,即优化多项式乘法 一般情况下,计算两个规模为$n$的多项 ...
- 【宏基因组】MEGAN4,MEGAN5和MEGAN6的Linux安装和使用
MEGAN(Metagenome Analyzer)是宏基因组学进行物种和功能研究的常用软件,实际上现在的Diamond+MEGAN6已经是一套比较完整的物种和功能注释流程了. 但是由于各种原因,我们 ...
- MYSQL5.8----M2
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_s ...
- Oracle、MySQL关机操作步骤
一.Oracle数据库单机关机(eg:LEAP系统) 先关闭使用数据库的应用系统,再关闭数据库 关闭数据库执行以下命令 1.关闭Oracle数据库监听器:(使用操作系统下管理Oracle的账户,关闭监 ...
- android studio 编译 Android dependency has different version
找了一圈,终于在大佬的博客中找到了解决方法. 附链接:https://blog.csdn.net/u010725171/article/details/81232183 Android depende ...
- django中的filter(), all(), get()
1. 类名.objects中的get(), filter(), all() 的区别 结论: (1)all()返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使 ...
- linux允许直接以root身份ssh登录
1. sudo su - 2. vim /etc/ssh/sshd_config 3. let "PermitRootLogin" equal yes 4. :wq 5. serv ...