软件设计之Maven(1)
路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷新版Maven教程(高效入门maven,上手又快又稳)
资料可以去尚硅谷官网免费领取
学习内容:
- Maven简介
- 安装与环境配置
- Maven工程GAVP含义
- Maven的Web工程
- Maven工程构建命令
- 插件、命令、生命周期
1、Maven简介
Maven是一个项目管理和构建工具,主要用于Java项目。它提供了一个标准化的构建流程,使开发者能够快速、可靠地管理项目的构建、依赖和文档生成。Maven的核心思想是“约定优于配置”,即通过约定的方式减少配置的复杂性。
依赖管理工具
Maven作为依赖管理工具,通过在pom.xml文件中声明所需的外部库和版本,自动解析并下载这些依赖及其传递依赖,从而确保项目在构建和运行时能够找到所有必要的库。这一过程简化了依赖管理,避免了版本冲突,提高了构建的可靠性和可重复性。
构建工具
Maven作为构建工具,提供了一套标准化的构建生命周期和插件机制,自动化地执行项目的编译、测试、打包和发布等任务。通过定义清晰的构建过程和项目结构,Maven帮助开发者高效地管理项目构建,确保各个阶段有序进行,从而提高了开发效率和团队协作能力。
2、安装与环境配置
(1) 下载的压缩包解压完一般会是一个apache-maven-3.8.8文件夹,我的MAVEN_HOME路径是D:\Maven\apache-maven-3.8.8
(2) 验证安装在命令行或终端输入:mvn -v
功能配置
找到settings.xml文件,具体操作可以看视频
<!-- 配置本地仓库地址-->
<localRepository>D:\maven-repository</localRepository>
<!-- 配置国内阿里镜像-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!--在profiles节点(标签)下添加jdk编译版本 268行附近-->
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
</properties>
</profile>
3、Maven工程GAVP含义
不同的Java文件夹
4、Maven的Web工程
(1)方式一:
其中在设置完pom.xml并刷新之后,可以在文件->项目结构->模块中添加web.xml,并设置好存放位置,具体文件结构如下图所示:
(2)方式二:
在设置->插件->Marketplace搜索JBLJavaToWeb,随即安装(别忘记点右下角的应用按钮!!!),在你想要添加Web工程的模块下右键,点击JBLJavaToWeb即可。
5、Maven工程构建命令
- compile:在名字为maven_java模块工程内,写java类代码,通过cmd指令进入该项目的绝对路径 “E:\Java30days\Project\Maven_test\maven_java”(即该项目pom.xml所在文件夹路径),运行mvn compile,生成target文件
- clean:删除目标目录 (target) 及其内容
- test: 执行项目中的测试代码
-
- 测试类的名称通常以被测试类的名称为基础,后缀加上 Test(例如,如果被测试类是 UserService,测试类可以命名为 UserServiceTest)
-
- 测试方法应该描述其测试的功能,通常以 test 开头(例如 testAddUser)
-
- 测试报告在target文件的surefire-reports文件夹中,里面描述了测试的结果
- package:将项目源代码编译并打包成可发布的格式(如 JAR 或 WAR 文件)
-
- 打包之前,Maven 会运行 src/test/java 中的测试用例,确保代码在打包前通过所有测试。如果测试失败,打包过程会被中止。
-
- 打包类型会根据 pom.xml 中的 packaging 标签类型(如 jar 或 war)
-
- 插件版本: 确保使用的 Maven 插件(如 maven-war-plugin 或 maven-jar-plugin)的版本与 JDK 兼容。如果插件不支持所使用的 JDK 版本,也会导致打包失败。
- install: 将项目打包并安装到本地 Maven 仓库,通过将构建的项目安装到本地 Maven 仓库,可以在本地的其他 Maven 项目中引用这个项目,方便开发和测试。
命令 | 描述 |
---|---|
mvn compile | 编译项目,生成target文件 |
mvn test-compile | 编译项目(包含测试项目),生成target文件 |
mvn package | 打包项目,生成jar或war文件 |
mvn clean | 清理编译或打包后的项目结构 |
mvn install | 打包后上传到maven本地仓库 |
mvn deploy | 只打包,上传到maven私服仓库 |
mvn site | 生成站点 |
mvn test | 执行测试源码 |
IDEA可视化构建
双击可以执行类似 mvn-xxx的效果
Maven坐标的使用
Maven 坐标的格式:(groupId:artifactId:version)
JAR 包在本地仓库中的路径结构如下:其中本地仓库之前我们设置过,我的是:D:\Maven\maven-repository
<local-repo>/
└── <groupId>
└── <artifactId>
└── <version>
└── <artifactId>-<version>.jar