引言
当我们在创建一个新的idea项目时,不知道大家注意过没有

在这个页面中除了intellij选项之外,还有一个maven选项。而这个maven恰好就是我们今天这篇文章的重头戏!
创建maven项目

单单创建一个maven项目其实很简单,只需要在原有的基础上把本来创建的idea项目改成maven就好了。此处的groupid和artifactid在工作中参与大项目时会使用到,表示组名和项目的一些信息。

创建完成后的项目中的目录与我们之前idea的目录差异很大,有了很多没见过的模块,比如:
- target:maven构建项目后生成的输出目录,所有的编译、打包的结果都会在这里
- pom.xml:maven 项目的核心配置文件,定义了项目的依赖、构建方式、插件、版本等关键信息。
- external libraries 外部依赖:这里显示的是项目通过 maven 引入的所有外部依赖库。
target目录下的内容其实可以全部删除,因为每一次刷新maven这些东西就会通过maven指令重新解析并且重新生成一遍,我们只需要其中有用的包就行。
当我们想要检查某一个依赖是否真的被加入到项目中,我们可以检查外部依赖,如果外部依赖里确实有,那就说明这个依赖被添加进去了。
pom.xml是maven中一个非常重要的文件!
pom文件
这是一个简单的数据库依赖:
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0</modelversion>
<groupid>org.example</groupid>
<artifactid>maven-demo</artifactid>
<version>1.0-snapshot</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
<dependencies>
<dependency>
<groupid>com.mysql</groupid>
<artifactid>mysql-connector-j</artifactid>
<version>9.3.0</version>
<exclusions>
<exclusion>
<artifactid>protobuf-java</artifactid>
<groupid>com.google.protobuf</groupid>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>项目基本信息

前面这一部分都是对于项目的一些简介,里面包含了项目的一些基本信息。
gav
<groupid>org.example</groupid> <artifactid>maven-demo</artifactid> <version>1.0-snapshot</version>
这三个标签合称为maven 的 gav 坐标,是全球唯一标识一个项目 / 依赖的 “身份证”,无论在本地仓库还是中央仓库,maven 都靠这三个值定位资源。
g:组织(团队名or公司名)
a:项目(项目名称)
v:版本
properties
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>properties是全局属性配置区,可以在这里定义 “公共变量”,作用是统一管理项目的基础配置,避免分散配置导致的不一致。
比如此处就定义了jdk的版本以及编码格式。
依赖管理核心:dependencies与dependency
<dependencies>
<dependency>
<groupid>com.mysql</groupid>
<artifactid>mysql-connector-j</artifactid>
<version>9.3.0</version>
<exclusions>
<exclusion>
<artifactid>protobuf-java</artifactid>
<groupid>com.google.protobuf</groupid>
</exclusion>
</exclusions>
</dependency>
</dependencies>这里我们也是通过其中的gav坐标来定位依赖,比如此处使用的就是mysql官方的jdbc驱动来进行数据的链接的一个依赖。maven会自动的到官方地址去下载这个依赖到本地仓库。
maven 有 “传递依赖” 机制:当你引入 a 依赖时,a 依赖本身依赖的 b、c 库也会被自动引入。
但有时候,传递依赖会带来问题(比如版本冲突、冗余依赖),这时候就需要exclusions排除不需要的传递依赖:
这里排除了com.google.protobuf:protobuf-java:说明mysql-connector-j:9.3.0本身依赖了protobuf-java,但你的项目不需要这个库(或者它和其他依赖版本冲突),所以通过exclusion强制排除。
maven的配置与使用
生命周期

我们点击右边的图标就可以打开maven操作界面了。
这一部分表示整个maven的一个生命周期。不过我们平时只需要用到前五个就可以。

我们可以直接双击package代表执行除了clean前五个命令,最终会将项目打包成一个.jar包。
下载依赖到本地仓库

如图所示,我们刚开始尝试添加一个依赖的时候,肯定会出现上面这样的报红的情况。这是因为maven检查了本地仓库之后发现不存在9.2.0这个版本的数据库依赖。此时我们可以点击刷新maven ,让maven下载依赖:

新建maven仓库
我们的maven在本地c盘中有一个默认仓库,一般是在c:\maven.m2中。建议大家改到别的目录下,因为我们的依赖都会被下载到这里,久而久之会占用很大的存储空间。注意新建的maven仓库要包含原仓库中的所有文件。

然后我们把这里的两个路径改成和我图中一样的路径即可。
此处的setting.xml中保存了maven的一些基本设置等。正常来说maven会到总仓库中下载依赖,但是这个服务器在国外,所以速度可能会有点慢,可以通过在settings.xml中配置国内镜像源把下载路径改到国内的云服务,下载速度会变快。
有需要的话可以私信我,我把我的setting.xml文件私发给你。
当然,maven的用法不止这些,感兴趣的话,大家可以自行探索哦
到此这篇关于springboot配置与使用maven的方法的文章就介绍到这了,更多相关springboot使用maven内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论