今天内容
1.Maven
1.1目标:
理解Maven的作用与原理
掌握Maven的下载、安装、配置
掌握Maven项目的创建(JAVA与WEB项目)
掌握POM的写法,掌握依赖的特性:依赖传递、依赖冲突
掌握常用maven命令
1.2作用
1.依赖管理 dependency management 项目中不需要拷贝jar包
2.自动构建 auto build 自动修改配置、自动发布项目
3.方便查看框架源码
1.3原理
pom.xml:说明引用那些JAR包
本地仓库:非项目中的文件,存放着需要的jar
中央仓库:官方维护 国外
镜像仓库 国内访问效率更高 阿里云
私服 企业内访问效率更高
1.4使用
1.解压
settings.xml:本地仓库路径、配置profile
2.maven不使用骨架创建项目
返回值
1.5打包方式
本工程打包方式,main用jar web用war
1.6依赖冲突
1.6.0依赖的传递 当引入一个坐标时,可能会一同把坐标的依赖导入进来
1.6.1冲突现象
项目–>A–>C(1.0)
项目–>B–>C(1.1)
1.6.2自动排除
项目–>A–>D–>C(1.1)
项目–>B–>C(1.0)
会自动选择路径最短的
1.6.3手动排除
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
<exclusions> <!--排除-->
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<!--去除的不需要版本号-->
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
排除后
1.7作用域 Scope
常用三个值
compile:默认值,编译,表示这个jar包会从编译到运行一直存在
test:截止到测试单元,后续不会使用 假如打包后不包含这个
provided: 期望JDK、容器或使用者会提供这个依赖
servlet-api
jstl
如果已经添加serlvet依赖了项目java文件夹右键没有create new servlet 需要
https://www.jb51.net/article/202189.htm
使用骨架archetype 来创建java web工程
archetypeCatalog=internal
完整项目结构
2.总结
MAVEN: 4个仓库、POM、坐标、传递依赖的规则、作用域、生命周期