maven的基础概念

137 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

今天说下日常工作最常使用的maven,平时我们都知道建pom,导依赖,但是可能都是直接上手,对一些概念还是比较陌生的,反正我是。。。

首先Maven是为Java项目打造的管理和构建工具,从一整套标准化的构建流程到它的依赖管理机制,对于项目结构,我们保持默认格调即可,这个没啥说的

我们主要说说pom.xml;其中,groupId好比Java的包名,通常是公司名称或机构的,artifactId为实际项目中的一个Maven模块, 推荐使用groupId作为artifactId的前缀,通常是项目名称,再加上version,一个Maven工程就是由groupIdartifactIdversion作为唯一标识。我们在引用其他第三方库的时候,也是通过这3个变量确定。通过使用<dependency>Maven就会自动下载这个依赖包并把它放到classpath中;在这过程中Maven会先在本地仓库查询是否存在此构件,如果存在直接使用,不存在会去远程仓库查找,查询到会下载到本地仓库并使用如果查不到会爆红;

对于使用maven引入jar,如果jar中存在依赖另一个jar,现在只需要maven会自动将这些依赖也引入 ,而以前是手动的方式引入,对于引入进来的jar,我们通常会看到它里面的几个参数

**第一个compile,表示编译时需要用到该jar包(默认),大部分jar都是

第二个runtime,表示运行时需要用到该jar包。

第三个是test,测试类才需要。

第四个是provided,编译时需要用到,但运行时不需要,比如openfeign

这些是入门的一些参数配置,对于想查看maven结构的情况,我们可以通过maven helper插件来进行查看,安装我就不说了,安装完成后点击pom文件,我们可以看到

这样就算完成了,后面我们说说构建的一些问题

通常构建我们需要执行,mvn clean,清理文件

mvn compile,编译项目

mvn package,对项目进行打包,这样我们的target下面就会出现我们的项目包