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基础讲解的更多相关文章

  1. Maven 基础标签之版本管理和冲突解决

    前言 我们在做java项目的时候由于jar包太多,我们就需要使用maven做项目管理,管理项目的jar包依赖,包括打包上线 maven基础 Maven 是一个项目管理工具,主要用于项目构建,依赖管理, ...

  2. maven基础知识

    1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...

  3. Verilog语法基础讲解之参数化设计

    Verilog语法基础讲解之参数化设计   在Verilog语法中,可以实现参数化设计.所谓参数化设计,就是在一个功能模块中,对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用 ...

  4. 原生AJAX基础讲解及兼容处理

    原文:原生AJAX基础讲解及兼容处理 AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML). AJAX不是新技术 ,但却是热门的技术.它 ...

  5. JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承

    说好的讲解JavaScript继承,可是迟迟到现在讲解.废话不多说,直接进入正题. 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考<面向对象J ...

  6. Maven基础

    Maven基础 maven核心内容:依赖管理. Maven是Apache组织的开源项目,是项目构建工具.用来管理jar包之间的相互依赖关系 Maven是一个项目构建和管理的工具,提供了帮助管理,构建, ...

  7. Android学习笔记-Adapter基础讲解

    本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式 ...

  8. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

  9. maven 基础

    maven安装链接 maven基础命令: 编译命令:mvn compile 测试命令:mvn test 清空命令:mvn clean 打包命令:mvn package 打包命令:mvn install ...

随机推荐

  1. Codeforces 1503E - 2-Coloring(组合数学)

    Codeforces 题目传送门 & 洛谷题目传送门 考虑什么样的 2-染色方式是符合题目要求的,首先蓝.黄颜色所形成的连通块个数必须 \(\le 2\),否则一定不合法,而显然如果两种颜色连 ...

  2. 【机器学习与R语言】5-规则学习算法

    目录 1.分类规则原理 1.1 1R单规则算法 1.2 RIPPER算法 2. 规则学习应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估性能 5)提高性能 6)选择决策树中的分类规则 ...

  3. 【MetDNA】基于代谢反应网络的大规模代谢物结构鉴定新算法

    代谢是生命体内化学反应的总称,其所包含的代谢物变化规律可直接反映生命体的健康状态.非靶向代谢组学(untargeted metabolomics)可以在系统水平测量生命体内生理或病理状态下所有代谢物的 ...

  4. illumina SNP 芯片转基因型矩阵

    一.芯片数据 此次拿到的illumina芯片数据并不是原始的数据,已经经过GenomeStudio软件处理成了finalreport文件,格式如下: 之前没处理过芯片数据,对于这种编码模式(Forwa ...

  5. 46.Valid Parentheses

    Valid Parentheses My Submissions QuestionEditorial Solution Total Accepted: 106346 Total Submissions ...

  6. SQL- case when then else end 用法经验总结

    对case when 的理解总结: 1.then和else后,只能写一条输出语句且输出结果就是新生成列的值;when 后的条件判断可以有多条,且可以多个字段联合判断:end 后的输出也可以有多条,但必 ...

  7. 大规模 K8s 集群管理经验分享 · 上篇

    11 月 23 日,Erda 与 OSCHINA 社区联手发起了[高手问答第 271 期 -- 聊聊大规模 K8s 集群管理],目前问答活动已持续一周,由 Erda SRE 团队负责人骆冰利为大家解答 ...

  8. 零基础学习java------day9------多态,抽象类,接口

    1. 多态 1.1  概述: 某一个事务,在不同环境下表现出来的不同状态 如:中国人可以是人的类型,中国人 p = new  中国人():同时中国人也是人类的一份,也可以把中国人称为人类,人类  d  ...

  9. javaIO——输入输出流

    字节流与字符流 File类不支持对文件内容进行相关的操作,所有若要处理文件的内容,则需要通过流操作模式来完成. 流的基本操作步骤: Step1:根据文件路径创建File类对象. Step2:根据字节流 ...

  10. Linux环境下为普通用户添加sudo权限

    系统环境:Centos6.5 1.背景: sudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部root命令的一个工具.Linux系统下,为了安全,一般来说我们操作都是在普通用户 ...