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

java maven進(jìn)階教學(xué)

 更新時(shí)間:2021年08月31日 16:56:45   作者:codelx519  
這篇文章主要介紹了Maven進(jìn)階教程的相關(guān)資料,文中講解非常細(xì)致,幫助大家開(kāi)始學(xué)習(xí)maven,感興趣的朋友可以了解下,希望能夠給你帶來(lái)幫助

1 Maven依賴范圍 

1.1 依賴配置

<project>
  ...
	<dependencies>
    <denpendcy>
      <groupId></groupId>
      <artifactId></artifactId>
      <version></version>
      <type></type>
      <scope></scope>
      <optional></optional>
      <exclusions>
        <exclusion>
        	...
        </exclusion>
      </exclusions>
    </denpendcy>
  </dependencies>
</project>

在pom.xml文件中,根元素project下的dependencies標(biāo)簽中可以包含一個(gè)或者多個(gè)dependency元素,以聲明一個(gè)或者多個(gè)項(xiàng)目依賴。每個(gè)依賴dependency標(biāo)簽中都應(yīng)該包含以下元素。

groupId: 依賴組id,可以理解為java的包名,一般用域名倒寫(xiě)

artifactId: 可以理解為項(xiàng)目名或者依賴名

version:依賴的版本

type:依賴的類(lèi)型,對(duì)應(yīng)項(xiàng)目坐標(biāo)定義的packaging,大部分情況下,該屬性不必聲明,其默認(rèn)值為jar

scope:依賴的范圍,這個(gè)對(duì)應(yīng)的屬性就比較多了,后續(xù)會(huì)做詳細(xì)介紹

optional:標(biāo)記依賴是否可選

exclusions:用來(lái)排除依賴的傳遞性,其中可以配置多個(gè)exclusion屬性,每個(gè)標(biāo)簽對(duì)應(yīng)著groupId、artifactId、version等三個(gè)基本屬性

很多時(shí)候,大部分依賴聲明只包含groupId、artifactId和version這三個(gè)指定基本坐標(biāo)的元素;而在一些特殊情況下,其它元素至關(guān)重要,也就是上面提到的scope、optional和exclusions。

1.2 依賴范圍概念

maven在編譯項(xiàng)目主代碼的時(shí)候需要使用一套classpath。舉例來(lái)說(shuō):

所以,依賴范圍就是用來(lái)控制依賴與這三種classpath(編譯classpath、測(cè)試classpath、運(yùn)行classpath)的關(guān)系的。
依賴具體范圍:scope(依賴范圍)共有五種,它們分別是compile、provided、runtime、test、system。

2 pom依賴傳遞性

在maven中,依賴傳遞是可以傳遞的,假設(shè)存在三個(gè)項(xiàng)目,分別是項(xiàng)目A,項(xiàng)目B,項(xiàng)目C。假設(shè)C依賴B,B依賴A,那么根據(jù)maven項(xiàng)目依賴的特征不難推出項(xiàng)目C也依賴于項(xiàng)目A.通過(guò)上圖也可以看出,在項(xiàng)目中直接依賴了spring-webmvc,而spring-webmvc依賴了Spring-aop,spring-beans等,也就是在項(xiàng)目中有依賴了spring-aop和spring-beans等等

3 依賴沖突解決

在實(shí)際的 Maven 項(xiàng)目開(kāi)發(fā)中,由于項(xiàng)目引入的依賴過(guò)多,遇到 jar 沖突算是一個(gè)很常見(jiàn)的問(wèn)題了

·標(biāo)注一:Maven Project,Maven 項(xiàng)目選項(xiàng);

·標(biāo)注二:Dependencies,項(xiàng)目依賴;

·標(biāo)注三:Show Dependencies,展示項(xiàng)目依賴圖

點(diǎn)擊Show Dependencies 按鈕之后,接下來(lái)就會(huì)出現(xiàn)以下內(nèi)容。

在我們發(fā)現(xiàn)jar包沖突之后,就可以通過(guò)exclusion進(jìn)行沖突的解決

4 分模塊構(gòu)建項(xiàng)目

Maven多模塊項(xiàng)目,適用于一些比較大的項(xiàng)目,通過(guò)合理的模塊拆分,實(shí)現(xiàn)代碼的復(fù)用,便于維護(hù)和管理。尤其是一些開(kāi)源框架,也是采用多模塊的方式,提供插件集成,用戶可以根據(jù)需要配置指定的模塊

4.1 創(chuàng)建一個(gè)父maven工程

1. 新建一個(gè)maven項(xiàng)目,選擇存儲(chǔ)位置,并選擇創(chuàng)建一個(gè)簡(jiǎn)單的maven工程

2.創(chuàng)建第一個(gè)模塊

3.創(chuàng)建第二個(gè)模塊

4.選擇繼承的父模塊

5.創(chuàng)建聚合工程C

這種項(xiàng)目結(jié)構(gòu)主要應(yīng)用在大型項(xiàng)目中,多人協(xié)作開(kāi)發(fā),小型項(xiàng)目 或 人員配置不足情況下不建議使用; 之前因?yàn)橐恢睕](méi)有機(jī)會(huì)參與大型項(xiàng)目開(kāi)發(fā),或是這種分布式項(xiàng)目的搭建,網(wǎng)上也沒(méi)有這方面系統(tǒng)全面的說(shuō)明 ,可能真正用到這種架構(gòu)的不需要自己動(dòng)手去弄,等著別人搭好進(jìn)去碼代碼就可以了

5 聚合和繼承

Maven的聚合特性可以幫助我們把項(xiàng)目的多個(gè)模塊聚合在一起,使用一條命令進(jìn)行構(gòu)建,即一條命令實(shí)現(xiàn)構(gòu)建多個(gè)項(xiàng)目;

Maven的繼承特性可以將各個(gè)模塊相同的依賴和插件配置提取出來(lái),在簡(jiǎn)化POM的同時(shí)還可以促進(jìn)各個(gè)模塊配置的一致性

5.1 聚合

<modules>
        <module>spring1</module>
        <module>spring2</module>
        <module>spring3</module>
</modules>

在前面的學(xué)習(xí)中,我們見(jiàn)過(guò)打包方式為jar和war的,但是聚合模塊的打包方式必須為pom,否則無(wú)法完成構(gòu)建。

5.2 繼承

<parent>
<groupId>com.baidu</groupId>
<artifactId>miliao-rootpom</artifactId> 
<version>2.0.3</version>
</parent>

可繼承的POM元素如下:

  • groupId:項(xiàng)目組ID,項(xiàng)目坐標(biāo)的核心元素
  • version:項(xiàng)目版本,項(xiàng)目坐標(biāo)的核心因素
  • distributionManagement:項(xiàng)目的部署配置
  • dependencies:項(xiàng)目的依賴配置
  • dependencyManagement:項(xiàng)目的依賴管理配置

5.3 聚合和繼承的關(guān)系

雖然聚合模塊和父模塊經(jīng)常合二為一,但是聚合和繼承是兩個(gè)不同的概念,其實(shí)是沒(méi)有什么關(guān)系的。

聚合模塊知道它聚合了哪些模塊,但是被聚合的模塊不知道聚合模塊的存在;

繼承父模塊不知道子模塊的存在,但是子模塊都必須知道自己的父模塊是誰(shuí)。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java中的export方法實(shí)現(xiàn)導(dǎo)出excel文件

    java中的export方法實(shí)現(xiàn)導(dǎo)出excel文件

    這篇文章主要介紹了java中的export方法實(shí)現(xiàn)導(dǎo)出excel文件,文章圍繞java導(dǎo)出excel文件的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • 使用mybatis報(bào)Invalid bound statement解決分析

    使用mybatis報(bào)Invalid bound statement解決分析

    這篇文章主要為大家介紹了使用mybatis報(bào)Invalid bound statement原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Spring框架概述及核心設(shè)計(jì)思想分享

    Spring框架概述及核心設(shè)計(jì)思想分享

    Spring框架是一種開(kāi)源的Java企業(yè)級(jí)應(yīng)用開(kāi)發(fā)框架,提供了IoC(控制反轉(zhuǎn))容器和DI(依賴注入)等核心設(shè)計(jì)思想,SpringBoot則是在Spring基礎(chǔ)上進(jìn)一步簡(jiǎn)化配置,提供了快速開(kāi)發(fā)、內(nèi)置服務(wù)器等功能,學(xué)習(xí)Spring框架需要掌握容器、IoC和DI等概念,以及分層設(shè)計(jì)等軟件工程思想
    2025-02-02
  • Java8 Lamda方法引用和構(gòu)造引用原理

    Java8 Lamda方法引用和構(gòu)造引用原理

    這篇文章主要介紹了Java8 Lamda方法引用和構(gòu)造引用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • java版十大排序經(jīng)典算法:完整代碼(3)

    java版十大排序經(jīng)典算法:完整代碼(3)

    優(yōu)秀的文章也不少,但是Java完整版的好像不多,我把所有的寫(xiě)一遍鞏固下,同時(shí)也真誠(chéng)的希望閱讀到這篇文章的小伙伴們可以自己去從頭敲一遍,不要粘貼復(fù)制!希望我的文章對(duì)你有所幫助,每天進(jìn)步一點(diǎn)點(diǎn)
    2021-07-07
  • java實(shí)現(xiàn)自定義表格渲染和編輯

    java實(shí)現(xiàn)自定義表格渲染和編輯

    這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)自定義表格渲染和編輯,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • 解決@Scheduled定時(shí)器使用@Thransactional事物問(wèn)題

    解決@Scheduled定時(shí)器使用@Thransactional事物問(wèn)題

    這篇文章主要介紹了解決@Scheduled定時(shí)器使用@Thransactional事物問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • springboot從application.properties中注入list,?map方式

    springboot從application.properties中注入list,?map方式

    這篇文章主要介紹了springboot從application.properties中注入list,map方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • mybatis+lombok出現(xiàn)java.lang.IndexOutOfBoundsException錯(cuò)誤及解決

    mybatis+lombok出現(xiàn)java.lang.IndexOutOfBoundsException錯(cuò)誤及解決

    在使用MyBatis和Lombok時(shí),如果遇到j(luò)ava.lang.IndexOutOfBoundsException問(wèn)題,是因?yàn)镸yBatis在嘗試將查詢結(jié)果封裝成Java對(duì)象時(shí),找不到構(gòu)造函數(shù)中對(duì)應(yīng)的字段,這通常是由于Lombok的@Builder注解生成了全參構(gòu)造函數(shù)
    2025-02-02
  • java虛擬機(jī)中多線程總結(jié)

    java虛擬機(jī)中多線程總結(jié)

    在本篇內(nèi)容中小編給大家分享的是關(guān)于java虛擬機(jī)中多線程的知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友們參考學(xué)習(xí)下。
    2019-06-06

最新評(píng)論

浏阳市| 新昌县| 申扎县| 张家港市| 尖扎县| 长治县| 旬邑县| 阿巴嘎旗| 双城市| 清河县| 福贡县| 雅江县| 沙坪坝区| 浏阳市| 通州市| 嘉荫县| 德惠市| 高陵县| 望谟县| 锦屏县| 宣城市| 平定县| 紫金县| 甘南县| 高台县| 博罗县| 军事| 荆州市| 新乐市| 梁山县| 唐海县| 灵璧县| 上思县| 阿克| 闽清县| 江北区| 南昌县| 延庆县| 新郑市| 梓潼县| 清水河县|