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

Maven項目繼承實現(xiàn)過程圖解

 更新時間:2020年08月05日 11:57:43   作者:護花使者  
這篇文章主要介紹了Maven項目繼承實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

多個maven項目之間難免有重復的pom配置,重復的配置沒必要重復寫,maven提供了父子繼承的關(guān)系,重復的依賴直接放在父項目的pom中。

所以不希望每個開發(fā)者隨意定義maven版本依賴,可以在父項目中進行說明,然后子項目沿用即可。

idea創(chuàng)建父項目(這是一個父項目,也是一個空項目,只需要pom.xml,編寫相關(guān)的依賴, 父項目必須用pom打包的方式):

編輯父項目pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.linewell</groupId>
  <artifactId>maven-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <!--父項目必須是pom-->
  <packaging>pom</packaging>

  <!--定義參數(shù)-->
  <properties>
    <common.version>2.6</common.version>
    <spring.version>4.3.6.RELEASE</spring.version>
  </properties>

  <!--這邊的依賴子項目會繼承-->
  <dependencies>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${common.version}</version>
    </dependency>
  </dependencies>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>spring-context-support</groupId>
        <artifactId>org.springframework</artifactId>
        <version>${spring.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  
</project>

這邊需要說明下,dependencyManagement,這邊的依賴不會被繼承,如果子項目導入了這個依賴,可以不用寫版本號,會以父項目的為主,因為有的子項目不一定會用父項目中的所有依賴。個別子項目依賴到的包可以放在這里,然后不需要寫版本號,會自動引用父項目。

創(chuàng)建一個子項目,編輯子項目的pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.linewell</groupId>
  <artifactId>maven-children</artifactId>
  <version>1.0-SNAPSHOT</version>

  <parent>
    <groupId>com.linewell</groupId>
    <artifactId>maven-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../mavenparent/pom.xml</relativePath>
  </parent>

</project>

可以看到commons-io進來了,spring-context-support沒進來。

我現(xiàn)在不添加spring-context-support的版本,然后看下結(jié)果,是會以父項目的版本為主??梢钥吹饺缦乱氲囊彩歉疙椖恐械?.3.6

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.linewell</groupId>
    <artifactId>maven-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../mavenparent/pom.xml</relativePath>
  </parent>

  <groupId>com.linewell</groupId>
  <artifactId>maven-children</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
    </dependency>
  </dependencies>
</project>

那么問題來了,如果子項目指定了版本會怎么樣?

編輯子項目pom.xml, 如下可以發(fā)現(xiàn),如果子項目有明確指定依賴以及具體版本,與父項目發(fā)生沖突會以子項目的依賴為準。

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.linewell</groupId>
    <artifactId>maven-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../mavenparent/pom.xml</relativePath>
  </parent>

  <groupId>com.linewell</groupId>
  <artifactId>maven-children</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>
  </dependencies>

</project>

ps:如果父項目中執(zhí)行了mvn install安裝到了本地倉庫,然后子項目中引入父GAV的時候可以不用寫路徑relativePath屬性。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 排序算法圖解之Java歸并排序的實現(xiàn)

    排序算法圖解之Java歸并排序的實現(xiàn)

    歸并排序是建立在歸并操作上的一種有效,穩(wěn)定的排序算法,該算法是采用分治法(Divide?and?Conquer)的一個非常典型的應用。本文主要介紹了歸并排序的實現(xiàn),需要的可以參考一下
    2022-11-11
  • spring cloud gateway整合sentinel實現(xiàn)網(wǎng)關(guān)限流

    spring cloud gateway整合sentinel實現(xiàn)網(wǎng)關(guān)限流

    這篇文章主要介紹了spring cloud gateway整合sentinel實現(xiàn)網(wǎng)關(guān)限流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Mybatis-plus通過添加攔截器實現(xiàn)簡單數(shù)據(jù)權(quán)限

    Mybatis-plus通過添加攔截器實現(xiàn)簡單數(shù)據(jù)權(quán)限

    系統(tǒng)需要根據(jù)用戶所屬的公司,來做一下數(shù)據(jù)權(quán)限控制,具體一點,就是通過表中的company_id進行權(quán)限控制,項目使用的是mybatis-plus,所以通過添加攔截器的方式,修改查詢sql,實現(xiàn)數(shù)據(jù)權(quán)限,本文就通過代碼給大家詳細的講解一下,需要的朋友可以參考下
    2023-08-08
  • SpringBoot集成Jpa對數(shù)據(jù)進行排序、分頁、條件查詢和過濾操作

    SpringBoot集成Jpa對數(shù)據(jù)進行排序、分頁、條件查詢和過濾操作

    這篇文章主要介紹了SpringBoot集成Jpa對數(shù)據(jù)進行排序、分頁、條件查詢和過濾操作,主要使用Jpa連接數(shù)據(jù)庫對數(shù)據(jù)進行排序、分頁、條件查詢和過濾操作,需要的朋友可以參考下
    2023-05-05
  • java后端訪問https證書的問題及解決

    java后端訪問https證書的問題及解決

    這篇文章主要介紹了java后端訪問https證書的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解

    SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解

    PageHelper是mybatis框架的一個插件,用于支持在mybatis執(zhí)行分頁操作。本文將通過SpringBoot整合PageHelper實現(xiàn)分頁查詢功能,需要的可以參考一下
    2022-03-03
  • 利用Spring Session和redis對Session進行共享詳解

    利用Spring Session和redis對Session進行共享詳解

    這篇文章主要給大家介紹了關(guān)于利用Spring、Session和redis對Session進行共享的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-09-09
  • SpringBoot--- SpringSecurity進行注銷權(quán)限控制的配置方法

    SpringBoot--- SpringSecurity進行注銷權(quán)限控制的配置方法

    這篇文章主要介紹了SpringBoot--- SpringSecurity進行注銷,權(quán)限控制,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java volatile的幾種使用場景分析

    Java volatile的幾種使用場景分析

    volatile 是一種輕量級的同步機制,它能保證共享變量的可見性,同時禁止重排序保證了操作的有序性,但是它無法保證原子性,本文給大家總結(jié)了Java olatile的使用場景有哪些,并通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-03-03
  • java實現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

    java實現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

    這篇文章主要給大家介紹了關(guān)于java實現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論