Maven

什么是Maven?

maven是一个项目构建,依赖管理工具,使用maven工具可以实现自动化构建,测试,打包和发布项目,提高了开发效率

项目构建

指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程

项目构建的过程:清理、编译、测试、报告、打包、部署

打包方式:

  • Java工程打jar包
  • Web工程打war包

点击查看代码

复制代码
war包打包插件和jdk版本不匹配:需要在pom.xml中添加代码
<build>
    <!-- jdk17 和 war包版本插件不匹配 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
        </plugin>
    </plugins>
</build>
  • Pom不参与打包,当创建一个父工程的时候,会自动生成pom打包

基于IDEA对mavne进行管理

maven工程的核心信息配置和解读

复制代码
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0.0</version>

<!--打包方式
    默认:jar
    jar指的是普通的java项目打包方式! 项目打成jar包!
    war指的是web项目打包方式!项目打成war包!
    pom不会讲项目打包!这个项目作为父工程,被其他工程聚合或者继承!后面会讲解两个概念
-->
<packaging>jar/pom/war</packaging>

maven工程依赖管理配置
maven仓库地址

可以通过编写依赖jar包的gav必要属性,引入第三方jar依赖

scope属性是可选的,表示的是指定依赖的范围

依赖范围 描述 编译时 测试时 运行时 示例依赖
compile 默认依赖范围,用于编译、测试和运行 spring-core
test 仅用于测试阶段的依赖 JUnit
provided 编译和测试时需要,但运行时由环境提供的依赖 servlet-api
runtime 编译时不需要,但测试和运行时需要的依赖 JDBC驱动实现
system provided类似,但需要显式指定依赖文件路径 本地系统库(不常见)
import 仅在<dependencyManagement>中有效,用于导入其他POM的依赖管理 - - - 其他POM文件(不直接对应依赖)
相关推荐
Mryan20054 小时前
解决GraalVM Native Maven Plugin错误:JAVA_HOME未指向GraalVM Distribution
java·开发语言·spring boot·maven
依旧很淡定11 小时前
IntelliJ IDEA更改Maven工程名称
maven·修改名称
别惊鹊2 天前
(三)安装和使用Maven
java·maven
腥臭腐朽的日子熠熠生辉3 天前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
伊成3 天前
Springboot整合Mybatis+Maven+Thymeleaf学生成绩管理系统
java·maven·mybatis·springboot·学生成绩管理系统
汤姆大聪明3 天前
Redisson 操作 Redis Stream 消息队列详解及实战案例
redis·spring·缓存·maven
努力的搬砖人.3 天前
maven如何使用
java·后端·面试·maven
_Djhhh3 天前
基于SpringAOP面向切面编程的一些实践(日志记录、权限控制、统一异常处理)
java·spring boot·spring·maven·sprint
佩奇的技术笔记3 天前
中级:Maven面试题精讲
java·面试·maven
数据攻城小狮子3 天前
Java Spring Boot 与前端结合打造图书管理系统:技术剖析与实现
java·前端·spring boot·后端·maven·intellij-idea