1. 程式人生 > >maven進階

maven進階

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版本:

  1. Snapshot版本代表不穩定、尚處於開發中的版本,不能應用於線上
  2. maven在編譯的時候,會按照一定策略拉去最新的Snapshot版本
  3. release版本代表穩定的版本
  4. 什麼情況下該用SNAPSHOT?

maven 依賴衝突:

maven解析規則:

  Rule 1: Nearest First;
  Rule 2: If distance is the same, the one who declare first wins;

jar包版本衝突:

  1. 儘量使用更高的版本
  2. 儘量使用已知最穩定的版本
  3. 不要exclude,除非理由充分

工具外掛:

  maven常用工具命令