maven進階
阿新 • • 發佈:2018-12-20
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,除非理由充分
工具外掛: