参考笔记
为什么要设置maven的编译级别
解决“不支持JDK版本5问题”
1.初识maven:
- 作用:管理依赖(jar包与jar包、jar包与项目、项目与项目之间),构建项目:
- 构建项目:清理、批量编译java代码、批量执行测试代码、报告测试结果、打包项目、将打包过后的项目安装到本地仓库、部署项目(此步骤自己操作更方便)
- 打包分类:java程序打包成jar包,web程序打包成war包。
- 核心概念:pom.xml(项目对象模型),约定的目录结构,坐标(gav表示资源),依赖管理,仓库管理(资源存放的位置),生命周期(项目的构建过程),插件和目标,继承,聚合。
- 操作maven的两种方式:结合命令、工具创建
- 项目构建工具大趋所向:gradle
- JDK:java开发工具包
- SDK:软件开发工具包
2.maven仓库(存放资源)
- 远程仓库
中央仓库(可下载相关架包)、私服、中央仓库的镜像(备份)
中央仓库链接 - 本地默认仓库(默认位置:C:UsersDELL.m2repository)
- 如何修改本地仓库的位置:修改maven的根conf下的settings.xml配置文件
3.坐标
- groupId:当前Maven构件隶属的组织名。groupId一般分为多段,通常情况下,第一段为域,第二段为公司名称。域又分为 org、com、cn 等,其中 org 为非营利组织,com 为商业组织,cn 表示中国。以 apache 开源社区的 tomcat 项目为例,这个项目的 groupId 是 org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artifactId是tomcat。(必须)
2.artifactId:项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。(必须)
- version:当前版本。(必须) packaging:打包方式,比如 jar,war… (必须)
- classifier:classifier通常用于区分从同一POM构建的具有不同内容的构件。它是可选的,它可以是任意的字符串,附加在版本号之后。
4.添加参数的作用:加快下载所需版本的速度
5.创建maven工程的步骤
- 空项目
- 父工程:创maven项目------删除src------在pom.xml中添加
pom - 子项目(父子module常并列)
若子继承了父无用的依赖,需pom.xml来管理,提高打包上传效率
?如何管理依赖
?如何管理依赖的版本号
父 pom.xml(maven的全局设置)
4.0.0 com.zuo maven-parent 1.0 ../maven-web-01 maven-parent http://www.example.com //指定编译级别 UTF-8 1.8 1.8 //自定义标签,通过EL表达式引用,maven的全局设置4.11 8.0.13 2.13.3 junit junit ${junit} test com.fasterxml.jackson.core jackson-core ${jackson} mysql mysql-connector-java ${mysql-version} pom
子 pom.xml
maven-parent com.zuo 1.0 ../maven-parent/pom.xml 4.0.0 maven-web-01 maven-web-01 http://www.example.com ../maven-javase-01 UTF-8 1.8 1.8 mysql mysql-connector-java pom
6.创建maven的web项目注意事项
为你自己的JDK版本设置编译级别,设置成全局:
settings中的设置:
project Structure中的设置:
pom文件:
注意tomcat10导入的servlet和jsp的版本问题,jakarta.servlet.jsp而不是javax.servlet.jsp
4.0.0 com.zuo maven-web-02 1.0 war //JDK的编译级别局部设置UTF-8 17 17 jakarta.servlet.jsp jakarta.servlet.jsp-api 3.0.0 provided jakarta.servlet jakarta.servlet-api 5.0.0 provided junit junit 4.11 test
打包成果文件,需加入插件
org.apache.maven.plugins maven-war-plugin 3.2.2
7.maven的依赖范围
//默认compile,说明这个依赖伴随着maven项目的生命周期compile //test:例如junit,只在测试过程中使用依赖test //provided:说明这个依赖服务器已经提供,只在主程序和测试程序中用到,不会被编译provided
8.maven资源插件的应用



