Maven配置
一、Maven简介
1.1在项目中如何导入jar包
- 下载jar包(MVN)
- 将下载的jar包拷贝到项目中(WEB-INF/lib)
- 选择jar文件--右键--add as library
1.2传统导入jar包的方式存在的问题
- 步骤多
- 不同项目中如果需要相同的jar包,则需要分别存储
- 不同环境下可能因为jar文件版本不一致导致项目无法运行(重新配置)
1.3项目生命周期
项目从编译到运行的整个过程
完整的生命周期:清理缓存--校验--编译--测试--打包--安装--部署
- IDEA提供了一键构建项目的功能,如果需要自定义项目周期管理,没有现成的工具
1.4Maven简介
Maven是一个
基于项目对象模型(POM)进行项目的依赖管理、生命周期管理
工具软件
核心功能
- 依赖管理
- 生命周期管理
- 聚合工程
二、Maven安装及配置
2.1Maven下载
2.2Maven安装
开箱即用:直接解压即可
- 解压(D:/Application/Maven)
- 目录结构
- bin 存放指令文件(Maven提供了一个mvn指令)
- boot 包含了一个类加载框架的jar文件
- conf 包含了Maven的核心配置文件settings.xml
- lib 存放了对Maven运行所需的jar文件
2.3配置环境变量
MAVEN_HOME
D:\Application\MavenPath
增加 %MAVEN_HOME%\bin
三、Maven的项目结构
Maven进行项目管理:无论使用什么开发工具项目(Eclipse/IDEA)的结构是统一的
3.1Maven的项目结构
项目名称 --src --main(存放项目的源文件) --java(存放java代码,相当于传统项目中的src目录) --resources(存放配置文件和静态资源的目录,相当于传统项目的web目录) --test(存放项目的单元测试代码) --pom.xml
3.2pom.xml
POM(Project Object Model)Maven可以根据
pom
文件的配置对此项目进行依赖管理,也就是说项目中需要依赖,直接在pom.xml
进行配置即可
<?xml version="1.0" encoding="utf-8"?> <project> <!-- 指定项目模型版本 --> <modelVersion>4.0</modelVersion> <!-- 指定项目标识,G 企业标识 A 项目标识 V --> <groupId>com.letian.study</groupId> <artifactId>maven</artifactId> <version>1.0.0</version> <!-- 配置项目依赖 --> <dependencies> </dependencies> </project>
如果需要在当前项目中添加依赖,在
pom.xml
文件中进行依赖配置即可
配置依赖找到依赖的坐标,添加到dependencies
<!-- mysql-connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency>
四、依赖管理
4.1Maven依赖管理的流程
4.2Maven仓库介绍
-
本地仓库
就是本地计算机上的某个文件夹(可以是自定义的任何文件夹) -
远程仓库
就是远程主机上的jar文件仓库-
中央仓库
Maven官方提供的仓库,包含了所需的一切依赖(免配置) -
公共仓库
除了中央仓库以外的第三方仓库都是公共仓库(需配置) -
私服
企业搭建的供内部使用的Maven仓库 -
Maven仓库
-
4.3Maven仓库配置
- 在maven_home/conf/settings.xml中配置
配置本地仓库
<localRepository>D:\Documentation\repo</localRepository>
配置远程仓库
<!-- 阿里云镜像 --> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
五、项目生命周期管理
5.1生命周期介绍&指令
项目构建的生命周期:项目开发结束之后部署到运行环境的过程
- 清理缓存(mvn clean)
- 检查(mvn check)
- 编译(mvn compile)
- 测试(mvn test)(就会执行Maven项目中test目录下的单元测试)
- 打包(mvn package)(war、jar)
- 安装(mvn install)(jar会被安装到本地仓库)
- 部署(mvn deploye)(将项目生成的包放到外部服务器中---私服)
5.2IDEA关联Maven
![]() |
---|
![]() |
说明:
IDEA本身集成了Maven,考虑到IDEA和Maven的兼容性,不建议配置比默认版本更新的版本,建议使用IDEA自带的Maven
5.3使用IDEA创建Maven项目
5.3.1Java项目
创建Java项目 |
---|
![]() |
![]() |
5.3.2Web项目
- 创建Web项目
![]() |
---|
- 设置打包方式
![]() |
---|
- 完善Web项目结构
![]() |
---|
- 配置Web组件
![]() |
---|
![]() |
5.4在IDEA中使用Maven进行依赖管理
5.4.1查找依赖坐标
5.4.2添加依赖
- 将依赖的坐标配置到项目的
pom.xml
文件dependencies标签中
<?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>com.le_tian.study</groupId> <artifactId>create-web</artifactId> <version>1.0.0</version> <!-- 打包方式 --> <packaging>war</packaging> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <!-- 添加依赖 --> <dependencies> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> </project>
5.4.3依赖范围
在通过dependency添加依赖时,可以通过
scope
标签配置当前依赖的适用范围
test
只在项目测试阶段引入(编译、测试)runtime
只在运行时使用(运行、测试)provided
在(编译、测试、运行)引入compile
在(编译、测试、运行、打包)引入
5.5在IDEA中使用Maven进行项目构建
5.5.1Maven项目构建生命周期说明
clean
清理缓存 清理项目生成的缓存validate
校验 验证项目需要是否正确(项目信息、依赖)compile
编译 编译项目中的源代码test
测试 运行项目中的单元测试package
打包 将项目编译后的代码打包成发布格式verify
检查 对集成测试的结果进行检查、确保项目质量是达标的install
安装 将包保存到Maven的本地仓库,以便在本地的其他项目中可以引用此项目(聚合工程)deproy
将包安装到私服的仓库,以供其他开发人员共享
5.5.2IDEA进行生命周期管理
-
可视化
六、私服
企业搭建供内部使用的Maven仓库
- 开发者需要依赖直接从私服下载
- 私服可以实现企业内部依赖的共享:当企业开发了一个通用插件(jar),可以发布到私服,连接到私服的其他开发者就可以共享这个插件
6.1私服搭建
可以通过专门的Maven仓库管理软件来搭建私服(如:Apache Archiva、Nexus)
6.1.1下载Nexus
6.1.2解压Nexus
![]() |
---|
6.1.3安装并运行Nexus
- 进入到
%NEXUS_HOME%nexus-3.25.0-03\bin
目录 - 管理员身份打开命令行,执行指令
- nexus install
- nexus uninstall
- nexus start
- nexus stop
6.1.4登录Nexus
私服管理器登录地址:http://localhost:8081/nexus
默认账号:admin
默认密码:admin123
![]() |
---|
![]() |
![]() |
6.2配置私服
6.2.1在Maven的settings.xml文件的servers标签中
<!-- 配置连接私服所需的账号和密码 --> <server> <id>nexus-public</id> <!-- nexus的认证id --> <username>repouser</username> <!-- nexus中的用户名和密码 --> <password>repopwd</password> </server>
6.2.2在Maven的settings.xml
文件的profiles标签中
repository
和pluginRepository
的id子标签的值,要和上面配置的server
的id子标签的值一致
<profile> <id>nexus</id> <repositories> <repository> <id>nexus-public</id> <name>Nexus Release Snapshot Repository</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus-public</id> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile>
6.2.3在Maven的settings.xml
文件的activeProfiles
配置激活profile
<activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
本文作者:Byron_Zora
本文链接:https://www.cnblogs.com/byzora/p/17335948.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」