欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven的聚合(多模塊)和Parent繼承

 更新時(shí)間:2018年12月25日 15:32:21   作者:isea533  
今天小編就為大家分享一篇關(guān)于Maven的聚合(多模塊)和Parent繼承,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

即使是長期從事 Maven 工作的開發(fā)人員也不能完全掌握聚合(多模塊)和 Parent 繼承的關(guān)系,在使用多模塊時(shí),子模塊總要指定聚合的 pom 為 <parent>。由于在大多數(shù)示例中都是這么寫的,所以很難讓人搞懂這兩者的具體作用和關(guān)系。

實(shí)際上在 Maven 中聚合(多模塊)和繼承是兩回事,兩者不存在直接聯(lián)系。

pom文檔地址:https://maven.apache.org/pom.html
Maven 完全參考:http://books.sonatype.com/mvnref-book/reference/index.html

繼承

繼承是 Maven 中很強(qiáng)大的一種功能,繼承可以使得子POM可以獲得 parent 中的各項(xiàng)配置,可以對(duì)子pom進(jìn)行統(tǒng)一的配置和依賴管理。父POM中的大多數(shù)元素都能被子POM繼承,這些元素包含:

  • 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

想要添加 parent,只需要像下面這樣寫。

<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-parent</artifactId>
  <version>2.0</version>
  <relativePath>../my-parent</relativePath>
 </parent>
 <artifactId>my-project</artifactId>
</project>

其中relativePath元素不是必須的,指定后會(huì)優(yōu)先從指定的位置查找父pom。

聚合(或多模塊)

具有模塊的項(xiàng)目被稱為多模塊或聚合項(xiàng)目。模塊是此POM列出并作為一組執(zhí)行的項(xiàng)目。通過一個(gè)pom打包的項(xiàng)目可以將它們列為模塊來聚合成一組項(xiàng)目進(jìn)行構(gòu)建,這些模塊名是這些項(xiàng)目的相對(duì)目錄。

<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>my-parent</artifactId>
 <version>2.0</version>
 <packaging>pom</packaging>
 <modules>
  <module>my-project</module>
  <module>another-project</module>
 </modules>
</project>

在列出模塊時(shí),不需要自己考慮模塊間依賴關(guān)系,即POM給出的模塊排序并不重要。Maven將對(duì)模塊進(jìn)行拓?fù)渑判?,使得依賴關(guān)系始終在依賴模塊之前構(gòu)建。

聚合 VS 父POM

雖然聚合通常伴隨著父POM的繼承關(guān)系,但是這兩者不是必須同時(shí)存在的,從上面兩者的介紹可以看出來,這兩者的都有不同的作用,他們的作用不依賴于另一個(gè)的配置。

父POM是為了抽取統(tǒng)一的配置信息和依賴版本控制,方便子POM直接引用,簡化子POM的配置。聚合(多模塊)則是為了方便一組項(xiàng)目進(jìn)行統(tǒng)一的操作而作為一個(gè)大的整體,所以要真正根據(jù)這兩者不同的作用來使用,不必為了聚合而繼承同一個(gè)父POM,也不比為了繼承父POM而設(shè)計(jì)成多模塊。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)

    Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)

    今天帶大家復(fù)習(xí)Java的基礎(chǔ)知識(shí),文中有非常詳細(xì)的介紹及圖文示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • springboot項(xiàng)目中controller層與前端的參數(shù)傳遞方式

    springboot項(xiàng)目中controller層與前端的參數(shù)傳遞方式

    這篇文章主要介紹了springboot項(xiàng)目中controller層與前端的參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解Javaee Dao層的抽取

    詳解Javaee Dao層的抽取

    這篇文章主要介紹了詳解Javaee Dao層的抽取,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式

    springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式

    這篇文章主要介紹了springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Spring Cloud Gateway組件的三種使用方式實(shí)例詳解

    Spring Cloud Gateway組件的三種使用方式實(shí)例詳解

    Spring Cloud Gateway是 Spring 官方基于 Spring5.0 、 SpringBoot2.0 和 Project Reactor 等技術(shù)開發(fā)的網(wǎng)關(guān)旨在為微服務(wù)框架提供一種簡單而有效的統(tǒng)一的API 路由管理方式,統(tǒng)一訪問接口,這篇文章主要介紹了Spring Cloud Gateway組件的三種使用方式,需要的朋友可以參考下
    2024-01-01
  • springcloud gateway如何實(shí)現(xiàn)路由和負(fù)載均衡

    springcloud gateway如何實(shí)現(xiàn)路由和負(fù)載均衡

    這篇文章主要介紹了springcloud gateway如何實(shí)現(xiàn)路由和負(fù)載均衡的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringMVC配置404踩坑記錄

    SpringMVC配置404踩坑記錄

    本文主要介紹了SpringMVC配置404踩坑記錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Java多線程之線程安全問題詳細(xì)解析

    Java多線程之線程安全問題詳細(xì)解析

    這篇文章主要給大家介紹了關(guān)于Java多線程之線程安全問題的相關(guān)資料,Java多線程中線程安全問題是一個(gè)常見的問題,因?yàn)槎鄠€(gè)線程可能同時(shí)訪問共享的資源,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java?JVM虛擬機(jī)調(diào)優(yōu)詳解

    Java?JVM虛擬機(jī)調(diào)優(yōu)詳解

    JVM是JavaVirtualMachine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的,本文主要介紹了jvm調(diào)優(yōu),感興趣的小伙伴們可以參考一下<BR>
    2022-07-07
  • MyEclipse+Tomcat+MAVEN+SVN項(xiàng)目完整環(huán)境搭建(圖文教程)

    MyEclipse+Tomcat+MAVEN+SVN項(xiàng)目完整環(huán)境搭建(圖文教程)

    這篇文章主要介紹了MyEclipse+Tomcat+MAVEN+SVN項(xiàng)目完整環(huán)境搭建(圖文教程),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-12-12

最新評(píng)論