最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven中dependency和plugins的繼承與約束

 更新時間:2022年12月19日 10:15:05   作者:bladestone  
這篇文章主要介紹了Maven中dependency和plugins的繼承與約束,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Maven的父子項目

父子項目核心點是在于通過將一個大項目拆分為若干子模塊,每個模塊以子項目的形式存在,不同的子項目共享父項目的設(shè)置與約束。

所以,父項目承擔(dān)的角色是建立各個子項目的約束和一致的基礎(chǔ)。

父項目配置

<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.parent.project</groupId>
    <artifactId>project-artifiact</artifactId>
    <version>0.0.1.7-SNAPSHOT</version>
    <packaging>pom</packaging>
 
   <!-- dependency in inheritance -->
   <depdencies>
     <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.8.1</version>
      </dependency>
   </dependencies>

  <!-- depdency constraints -->
   </dependencies>
   <dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactid>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactid>log4j</artifactId>
      <version>1.2.16</version>
    </dependency>
  </dependencies>
</dependencyManagement>

<!-- plugin constraints -->
<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</pluginManagement>

<modules>
   <module>A</module>
   <module>B</module>
</modules>

在父項目中,其packaging值設(shè)置為pom,表示其定義為定義和描述項目的結(jié)構(gòu),而非真實的項目。

子項目定義

<?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>
        <artifactId>parent-project</artifactId>
        <groupId>com.parent.project</groupId>
        <version>0.0.1.7-SNAPSHOT</version>
    </parent>
    <artifactId>child-project</artifactId>
    <version>0.0.1.7-SNAPSHOT</version>
    <packaging>jar</packaging>
    ...........

dependencies

在上述示例中,定義了dependencies的節(jié)點,這個節(jié)點中定義的dependency將被其子項目繼承,可以在子項目默認加載進來。

dependencyManagement

在此節(jié)點中定義的dependency對于子項目而言,有版本上的約束,在子項目中,如果有指定版本,則默認使用父項目中約定的版本。

示例:

? <dependency>
? ? ?<groupId>junit</groupId>
? ? ?<artifactid>junit</artifactId>
</dependency>
<dependency>
? ? ?<groupId>log4j</groupId>
? ? ?<artifactid>log4j</artifactId>
</dependency>

其版本號默認使用父項目的版本號

pluginManagement

在此節(jié)點中定義的dependency對于子項目而言,有版本上的約束,在子項目中,如果有指定版本,則默認使用父項目中約定的版本。

示例:

<plugins>
? ? <plugin>
? ? ? ? <groupId>org.apache.maven.plugins</groupId>
? ? ? ? <artifactId>maven-source-plugin</artifactId>
? ? </plugin>
</plugins>

其默認使用父項目中規(guī)定的版本號。當(dāng)然在子項目中也可以覆蓋父項目中的版本約定,自行指定所需要的版本號。

總結(jié)

在父子項目結(jié)構(gòu)中,子項目以modules的形式在父項目中注冊,子項目實施具體的實現(xiàn)功能。

對于不同的子項目共享父項目中的設(shè)置與約束,方便團隊開發(fā)。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java通過客戶端訪問服務(wù)器webservice的方法

    java通過客戶端訪問服務(wù)器webservice的方法

    這篇文章主要介紹了java通過客戶端訪問服務(wù)器webservice的方法,涉及java創(chuàng)建與調(diào)用webservice的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • Struts2 文件上傳進度條的實現(xiàn)實例代碼

    Struts2 文件上傳進度條的實現(xiàn)實例代碼

    本篇文章主要介紹了Struts2 文件上傳進度條的實現(xiàn)實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 詳解SpringBoot配置文件啟動時動態(tài)配置參數(shù)方法

    詳解SpringBoot配置文件啟動時動態(tài)配置參數(shù)方法

    這篇文章主要介紹了詳解SpringBoot配置文件啟動時動態(tài)配置參數(shù)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 掌握SpringMVC中@InitBinder的實際應(yīng)用

    掌握SpringMVC中@InitBinder的實際應(yīng)用

    這篇文章主要介紹了掌握SpringMVC中@InitBinder的實際應(yīng)用,@InitBinder是Spring MVC框架中的一個注解,用于自定義數(shù)據(jù)綁定的方法,通過在控制器中使用@InitBinder注解,可以將特定的數(shù)據(jù)綁定邏輯應(yīng)用于請求參數(shù)的處理過程中,需要的朋友可以參考下
    2023-10-10
  • 深入了解Java語言中的并發(fā)性選項有何不同

    深入了解Java語言中的并發(fā)性選項有何不同

    這篇文章主要介紹了深入了解Java語言中的并發(fā)性選項有何不同,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • Java使用substring()截取(提取)子字符串

    Java使用substring()截取(提取)子字符串

    這篇文章主要介紹了Java使用substring()截取(提取)子字符串,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 基于SPRINGBOOT配置文件占位符過程解析

    基于SPRINGBOOT配置文件占位符過程解析

    這篇文章主要介紹了基于SPRINGBOOT配置文件占位符過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • logback.xml動態(tài)配置程序路徑的操作

    logback.xml動態(tài)配置程序路徑的操作

    這篇文章主要介紹了logback.xml動態(tài)配置程序路徑的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java httpclient請求form-data格式并設(shè)置boundary代碼實現(xiàn)方法

    Java httpclient請求form-data格式并設(shè)置boundary代碼實現(xiàn)方法

    在 Java 開發(fā)中,經(jīng)常會遇到需要使用 httpclient 發(fā)送 form-data 格式請求的場景,本文將詳細介紹如何正確地實現(xiàn)這一操作,包括數(shù)據(jù)格式示例、常見報錯及解決方法,本文通過實例代碼詳解講解,感興趣的朋友一起看看吧
    2025-01-01
  • Java中Arrays.sort自定義一維數(shù)組、二維數(shù)組的排序方式

    Java中Arrays.sort自定義一維數(shù)組、二維數(shù)組的排序方式

    這篇文章主要介紹了Java中Arrays.sort自定義一維數(shù)組、二維數(shù)組的排序方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

普兰店市| 祥云县| 仙桃市| 黄大仙区| 罗山县| 北安市| 江华| 金川县| 靖宇县| 平度市| 阆中市| 安岳县| 吴忠市| 桃园市| 商都县| 连云港市| 随州市| 南岸区| 华池县| 四子王旗| 福建省| 会泽县| 宜兰县| 大理市| 古浪县| 轮台县| 岳普湖县| 沙田区| 南开区| 浮山县| 天津市| 永仁县| 湘潭市| 杭州市| 天祝| 加查县| 万载县| 宝山区| 星子县| 晋中市| 麻栗坡县|