maven笔记

maven介绍和作用

Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。

主要作用的理解:

依赖管理:

在编写项目时我们需要许多第三方依赖,有maven后子需要将依赖项的信息编写到Maven工程的配置文件,Maven软件会自动下载并复制这些依赖到项目中,也会自动下载依赖所需要的依赖(确保依赖版本无误)

构建管理:

项目开发后想要将项目打包成.war文件,并部署到服务器中运行;使用maven可以通过一行构建命令(mvn package)快速构建和打包

idea 也可以构建项目,为什么要使用 maven 呢?

原因1:maven构建触发方便

原因2:开发项目的软件有很多,每个软件的项目结构都不相同,使用maven构建可以统一结构

Packaging定义规则:

指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!

packaging 属性为 jar(默认值),代表普通的Java工程(Java类文件,资源文件),打包以后是.jar结尾的文件。

packaging 属性为 war,代表Java的web工程(Java文件,jsp文件,html/cssjs文件,配置文件),打包以后.war结尾的文件。

packaging 属性为 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>

<!--gavp属性,不会改变-->

<groupId>com.atguigu</groupId>

<artifactId>maven-javase-project-02</artifactId>

<!--构建过程,部署时修改-->

<version>1.0-SNAPSHOT</version>

<!--maven工程的打包方式 java jar[默认值]; web war; 不打包 pom-->

<packaging>war</packaging>

<!--第三方依赖信息

dependencies -项目依赖信息的集合

dependency -每个依赖项

gav\] -依赖的信息就是其他被打包成maven的工程(该工程被打包成jar) 如何知道第三方依赖的信息呢? 1 使用官网查询 [http://mvnrepository.com](http://mvnrepository.com "http://mvnrepository.com") 2 使用插件 maven-search 点击tools(工具) -maven-search 直接搜索插件即可 扩展: 1 提取版本号统一管理(自定义一个标签提取版本号到该标签)------------------------properties\<\>中设置 2 可选属性scope------------------设置在dependency中(标明依赖可以使用的范围) scope------------引入依赖的作用 默认是compile 代表该依赖可以在main中使用,也可以在test中使用,在打包和运行时都有效 设置为test 该依赖只能在test中使用(例如单元测试方法的依赖) 设置为runtime main中不会用,test不会用 在打包和运行时会使用(一般是反射的时候使用) 例如:mysql Class.format(com.mysql.cj.jdbc.Driver) 设置为provided 在main中会使用,在test中会使用,在打包和运行时会使用 例如:Servlet 总结:scope是一种锦上添花的手段,如果掌握不好,就全部默认值 --\> \

相关推荐
WarPigs17 分钟前
Unity性能优化笔记
笔记·unity·游戏引擎
季鸢1 小时前
Java设计模式之状态模式详解
java·设计模式·状态模式
@yanyu6662 小时前
springboot实现查询学生
java·spring boot·后端
ascarl20102 小时前
准确--k8s cgroup问题排查
java·开发语言
magic 2452 小时前
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
java
爱敲代码的憨仔2 小时前
分布式协同自动化办公系统-工作流引擎-流程设计
java·flowable·oa
纪元A梦3 小时前
分布式拜占庭容错算法——PBFT算法深度解析
java·分布式·算法
卿着飞翔3 小时前
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
java·rabbitmq·java-rabbitmq
陈阿土i3 小时前
SpringAI 1.0.0 正式版——利用Redis存储会话(ChatMemory)
java·redis·ai·springai
px不是xp3 小时前
山东大学算法设计与分析复习笔记
笔记·算法·贪心算法·动态规划·图搜索算法