maven
https://www.imooc.com/video/8598
maven项目目录结构
src
-main
-java
-test
-java
resources
maven install 发布本项目到本地仓库。
pom.xml里面依赖的组件,先在本地仓库查找,本地找不到,去网上下载。
maven从网上下载的配置,在settings.xml里面。
默认是从国外的全球统一仓库下载,改成阿里云的仓库
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
maven依赖范围
compile:默认的范围,编译、测试运行都有效
provided:编译测试有效
runtime:测试运行时有效
test:在测试时有效
system:与本机系统相关联,移植性差(和provided范围一致)
import:导入依赖,只在dependencyManagement中使用,表示从其他的pom中导入dependencye配置
依赖冲突原则:
①:短路优先:<br> 会优先解析路径短的版本,比如:<br> A -> B -> C -> X(jar)<br> A -> D -> X(jar) 优先解析短的<br>
②:先声明先优先<br> 如果路径长度相同,则谁先声明,先解析谁——根据在依赖文件POM.XML中声明的先后顺序来选择依赖
聚合,在一个模块中将需要统一maven管理的的模块通过
<modules>
<module>../项目A</module>
<module>../项目B</module>
<module>../项目C</module>
</modules>
弄在一块,可以统一进行打包安装于本地仓库。
继承
1.应用场景:组件聚合时,多个组件使用相同的依赖导致聚合后出现重复,使用一个父组件定义该依赖,然后有需要的组件继承该组件,聚合时就不会重复
2.父组件定义依赖 在父组件-->dependencyManager-->dependencies下定义dependency 注意,dependencyManager下定义的dependency,该组件不依赖
3.继承父组件 parent标签下引用父组件的坐标 创建dependency引用,只有groupId和artifactId子元素
jetty作为容器发布:
1.添加jetty插件, 中央仓库中 Jetty Maven Plugin
2.run as --> Maven Build --> goal --> maven build
打包阶段直接运行
1. <executions> <execution> <!-- 打包成功后通过 jetty:run 来运行jetty服务 --> <phase>package</phase> <goal>run</goal>