Eclipse使用Maven
1)、添加Maven
2)、修改本地库
3)、建立Maven项目
4)、文件结构
5)、关于web项目报错的解决
新建立的文件无web结构:
修改:
结果:
Ps:此时还需配置web项目依赖的包,就可使用
核心概念
1)、POM(核心配置)
版本、坐标(项目名、模块名、版本号)、依赖
pom.xml实例:
<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>
<groupId>com.mfqh.maven</groupId>
<artifactId>DemoMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>This is a demo</description>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
</dependencies>
</project>
2)、约定的目录结构
src/main/java:java文件
src/main/resources:配置文件
src/test/java:测试代码
src/test/resources:测试的配置文件
target:临时文件:编译后的文件,jar包
Tips:约定 > 配置 > 编码——>能用配置的就不编码,能基于约定的就不配置
3)、坐标(GAV)
groupId:公司或域名的倒叙+项目名称
artifactId:项目的模块名称
version:当前模块的版本
组合路径:g/a/v/a-v.jar
Ps:本地的maven工程可执行mvn install来加入到本地库中
Tips:搜索jar包依赖网站:http://mvnrepository.com/点击跳转
4)、依赖管理
①通过dependency来定位依赖
<dependency> <gav> <scope></scope> </dependency>
②依赖的范围:<scope>value</scope>
类型 | 效果 |
---|---|
compile | 默认,main和test可访问该依赖,部署Tomcat运行时会放在lib下 |
test | main不能,test可访问,部署Tomcat运行时不会放在lib下 |
provided | main和test可访问该依赖,部署Tomcat运行时不会放在lib下 (如servlet,tomcat本身有) |
③依赖可见性
A——>B——>C(C中配置)
compile:C对A/B可见
test:C对A/B不可见
provided:C对A/B不可见
④依赖原则(解决jar包冲突)
最短路径者优先
路径相同时,先声明者优先
⑤依赖的排除(在依赖的一方进行配置)
<exclusions><exclusion>gav</exclusion></exclusions>
⑥统一管理jar包版本
在<dependencies>前配置:
<properties><spring.version(自定义标签)>版本号</spring.version></properties>
在<denpendency>中使用${spring.version}进行引用
5)、仓库
①、类型
本地仓库:默认、搬家后
远程仓库:
私服(架设在当前局域网下)
中央仓库(架设在Internet上)
中央仓库的镜像(减轻中央仓库的压力)
②仓库中的文件(根据坐标生成目录结构)
Maven的插件、自己装载的模块、第三方框架/jar包
6)、生命周期
定义了各个构建环节的执行顺序,三套独立的生命周期:
Clean Lifecycle:构建之前的清理工作
Default Lifecycle:构建的核心部分
compile、test-compile、test、package、install、deploy
Ps:执行某一阶段时,前面的所有阶段都会被运行
Site Lifecycle:生成的项目报告、站点、发布站点
7)、插件和目标
插件位于:org/apache/maven/plugin
目标:maven来实现的操作
8)、继承
多个文件依赖于同一个jar包,可提取出来建立一个父工程
①父maven工程必须为pom类型
父工程中进行依赖管理
②在子工程中使用<parent>来引入父工程的gav,
还需使用<relativePath>来指定父工程的pom.xml文件
需要在子工程中声明要继承的jar包的ga
Ps:此时可以省略子工程gv,默认为父工程
9)、聚合
在安装项目时,其依赖的项目未安装则会报错
使用父工程聚合其它项目:
<modules>
<module>项目路径</module>
</modules>
然后对父工程进行安装