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是一种锦上添花的手段,如果掌握不好,就全部默认值 --\> \

相关推荐
失业写写八股文11 分钟前
Java常量池的三驾马车:全面解析Class、运行期与字符串常量池
java·jvm
真的睡不醒ovo16 分钟前
关于解决新版本spring项目请求测试接口返回406的问题
java·后端·spring
砸吧砸吧24 分钟前
#mapreduce打包#maven:could not resolve dependencies for project
java·大数据·maven·mapreduce
chen2017sheng25 分钟前
什么是J2EE应用服务器?
java·java-ee
@Arielle。42 分钟前
【Excel】- 导入报错Can not find ‘Converter‘ support class LocalDateTime
java·后端·excel
繁缕怀夕1 小时前
【QT笔记---QText】
开发语言·笔记·qt
天草二十六_简村人1 小时前
kong搭建一套微信小程序的公司研发环境
java·后端·微信小程序·小程序·kong
菜鸟一皓1 小时前
告别XML模板的繁琐!Word文档导出,easy!
java·word
诗句藏于尽头2 小时前
安卓投屏到mac操作
笔记·macos
charlie1145141912 小时前
Linux驱动开发框架基础——新旧字符设备驱动笔记整理(1)
linux·驱动开发·笔记·学习·操作系统·教程