创建第一个Maven项目
创建工程结构
在src文件夹中配置pop.xml文件
mvc项目构建命令
mvn compile之后如果编译不成功可以更改一下镜像的地址试试,更改如下
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
mvn package 包含了编译和测试工作(compile和test)
mvn install把打包的东西放到仓库中
创建工程
使用idea创建maven项目(此处省略,因为有很多教程了)
创建web工程终web.xml文件中的内容的含义
<--!指定pom的模型版本-->
<modleVersion>4.0.0</modleVersion>
<--!打包方式,web工程打包为war,java打包为jar-->
<packaging>war</packaging>
组织ID
<groupId>com</groupId>
项目id
<artifactId>smart</artifactId>
版本号:release代表完成版,snapshot代表开发版
<version>0.0.1-SNAPSHOT</version>
当前工程的所有依赖
<dependencies>
构建
<build>
依赖管理
依赖指当前项目运行所需要的jar,一个项目可以设置多个依赖。
依赖传递:依赖具有传递性。比如X项目使用了a依赖,a依赖使用了b依赖,那么项目X也可以使用b.
依赖冲突:
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高。
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的。
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的。
排除依赖:主动的断开依赖的资源,被排除的资源无需指定版本<exclusions>
依赖范围:默认情况再任何地方都可以使用,但可以通过scope标签设定其作用范围(范围类型main,test,package)
常用范围关键字:
comile默认,例如:log4j
test 例如: junit
provided 例如:servlet-api
runtime 例如:jdbc
Maven的生命周期
生命周期完整过程
插件
常用插件地址 :https://mvnrepository.com/
<phase>阶段
<goal>打包项目