super pom:
所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 也被称作** Super POM **,它包含了一些可以被继承的默认设置。Maven 使用 effective pom(Super pom 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml。中做尽可能少的配置,当然这些配置可以被方便的重写。查看 Super POM 默认配置的一个简单方法是执行以下命令:
mvn help:effective-pom
占位符:
类似于EL表达式
<scope>...</scope>:管理依赖的部署
1.compile,缺省值,适用于所有阶段,会随着项目一起发布。
2.runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
3.provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如:需要tomcat来提供servlet.jar。
4.test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 比如junit
5.import,用来导入依赖,比如tcdev,打包引入
<version>3.1.0</version>:
<主版本>.<次版本>.<增量版本>-<里程碑版本>
主版本:重大架构变更
次版本:较大范围的功能增加和变化
增量版本:日常bug修复或小需求发布
Snapshot版本与release版本:
- Snapshot版本代表不稳定、尚处于开发中的版本,不能应用于线上
- maven在编译的时候,会按照一定策略拉去最新的Snapshot版本
- release版本代表稳定的版本
- 什么情况下该用SNAPSHOT?
maven 依赖冲突:
maven解析规则:
Rule 1: Nearest First;
Rule 2: If distance is the same, the one who declare first wins;
jar包版本冲突:
- 尽量使用更高的版本
- 尽量使用已知最稳定的版本
- 不要exclude,除非理由充分
工具插件: