maven 繼承

maven 的繼承,能讓咱們從父pom中繼承到一些配置。咱們能夠將一些通用的配置放在父pom中,來減小配置項。bash

實例

如圖所示,有一個 inherit 項目,而且引入了一個依賴 maven

假如我想繼承這個pom,該怎麼作呢?post

只需聲明 parent 便可。注意,version必須填寫ui

<parent>
    <groupId>com.wqlm</groupId>
    <artifactId>inherit</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../inherit</relativePath>
</parent>
複製代碼

relativePath

relativePath 的值是父項目的相對於當前pom的路徑url

如上圖,inherit 和 inherit-util 在同一個目錄下,因此inherit-util的 relativePath../inheritspa

注意 relativePath 的值是父項目的相對於當前pom的路徑,而不是artifactId。以下圖 3d

Maven首先在當前構建項目的環境中查找父pom,而後項目所在的文件系統查找,而後是本地存儲庫,最後是遠程repo。code

好比你將 inherit 安裝到本地倉庫中以後,子項目能夠不寫路徑 cdn

能被繼承的元素

子pom 能繼承父 pom 的以下元素(包括元素的子元素)blog

  • groupId
  • version
  • description
  • url
  • inceptionYear
  • organization
  • licenses
  • developers
  • contributors
  • mailingLists
  • scm
  • issueManagement
  • ciManagement
  • properties
  • dependencyManagement
  • dependencies
  • repositories
  • pluginRepositories
  • build
  • plugin executions with matching ids
  • plugin configuration
  • etc.
  • reporting
  • profiles

不能被繼承的元素

  • artifactId
  • name
  • prerequisites

packaging 的類型

packaging 默認值爲 jar,也就是將項目打包成jar包

繼承對 packaging 的類型沒有要求,如實例所示,父類的 packaging 沒寫,則說明父類的打包類型爲jar,但依然能夠被子類繼承。

實際使用中,父類通常不會寫代碼,通常負責通用配置,因此大部分狀況下都會把packaging設置爲pom

相關文章

maven 聚合

Maven 多模塊管理

相關文章
相關標籤/搜索