中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

杭州網(wǎng)站制作報(bào)價(jià)培訓(xùn)機(jī)構(gòu)招生方案模板

杭州網(wǎng)站制作報(bào)價(jià),培訓(xùn)機(jī)構(gòu)招生方案模板,wordpress 刪除自帶主題,做筆記的網(wǎng)站1. 基于IDEA 進(jìn)行Maven依賴(lài)管理 1.1 依賴(lài)管理概念 Maven 依賴(lài)管理是 Maven 軟件中最重要的功能之一。Maven 的依賴(lài)管理能夠幫助開(kāi)發(fā)人員自動(dòng)解決軟件包依賴(lài)問(wèn)題,使得開(kāi)發(fā)人員能夠輕松地將其他開(kāi)發(fā)人員開(kāi)發(fā)的模塊或第三方框架集成到自己的應(yīng)用程序或模塊中&#xf…

1. 基于IDEA 進(jìn)行Maven依賴(lài)管理

1.1 依賴(lài)管理概念

Maven 依賴(lài)管理是 Maven 軟件中最重要的功能之一。Maven 的依賴(lài)管理能夠幫助開(kāi)發(fā)人員自動(dòng)解決軟件包依賴(lài)問(wèn)題,使得開(kāi)發(fā)人員能夠輕松地將其他開(kāi)發(fā)人員開(kāi)發(fā)的模塊或第三方框架集成到自己的應(yīng)用程序或模塊中,避免出現(xiàn)版本沖突和依賴(lài)缺失等問(wèn)題。

我們通過(guò)定義 POM 文件,Maven 能夠自動(dòng)解析項(xiàng)目的依賴(lài)關(guān)系,并通過(guò) Maven 倉(cāng)庫(kù)自動(dòng)下載和管理依賴(lài),從而避免了手動(dòng)下載和管理依賴(lài)的繁瑣工作和可能引發(fā)的版本沖突問(wèn)題。

總之,Maven 的依賴(lài)管理是 Maven 軟件的一個(gè)核心功能之一,使得軟件包依賴(lài)的管理和使用更加智能和方便,簡(jiǎn)化了開(kāi)發(fā)過(guò)程中的工作,并提高了軟件質(zhì)量和可維護(hù)性。

1.2 Maven工程核心信息配置和解讀(GAVP)

位置:pom.xml

<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者組織的唯一標(biāo)志,并且配置時(shí)生成的路徑也是由此生成, 如com.companyname.project-group,maven會(huì)將該項(xiàng)目打成的jar包放本地路徑:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 項(xiàng)目的唯一ID,一個(gè)groupId下面可能多個(gè)項(xiàng)目,就是靠artifactId來(lái)區(qū)分的 -->
<artifactId>project</artifactId>
<!-- 版本號(hào) -->
<version>1.0.0</version><!--打包方式默認(rèn):jarjar指的是普通的java項(xiàng)目打包方式! 項(xiàng)目打成jar包!war指的是web項(xiàng)目打包方式!項(xiàng)目打成war包!pom不會(huì)講項(xiàng)目打包!這個(gè)項(xiàng)目作為父工程,被其他工程聚合或者繼承!后面會(huì)講解兩個(gè)概念
-->
<packaging>jar/pom/war</packaging>

1.3 Maven工程依賴(lài)管理配置

位置:pom.xml

依賴(lài)管理和依賴(lài)添加

<!-- 通過(guò)編寫(xiě)依賴(lài)jar包的gav必要屬性,引入第三方依賴(lài)!scope屬性是可選的,可以指定依賴(lài)生效范圍!依賴(lài)信息查詢(xún)方式:1. maven倉(cāng)庫(kù)信息官網(wǎng) https://mvnrepository.com/2. mavensearch插件搜索-->
<dependencies><!-- 引入具體的依賴(lài)包 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version><!-- 依賴(lài)范圍 --><scope>runtime</scope></dependency></dependencies>

依賴(lài)版本統(tǒng)一提取和維護(hù)

<!--聲明版本-->
<properties><!--命名隨便,內(nèi)部制定版本號(hào)即可!--><junit.version>4.12</junit.version><!-- 也可以通過(guò) maven規(guī)定的固定的key,配置maven的參數(shù)!如下配置編碼格式!--><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><!--引用properties聲明版本 --><version>${junit.version}</version></dependency>
</dependencies>

1.4 依賴(lài)范圍

通過(guò)設(shè)置坐標(biāo)的依賴(lài)范圍(scope),可以設(shè)置對(duì)應(yīng)jar包的作用范圍:編譯環(huán)境、測(cè)試環(huán)境、運(yùn)行環(huán)境

依賴(lài)范圍描述
compile編譯依賴(lài)范圍,scope 元素的缺省值。使用此依賴(lài)范圍的 Maven 依賴(lài),對(duì)于三種 classpath 均有效,即該 Maven 依賴(lài)在上述三種 classpath 均會(huì)被引入。例如,log4j 在編譯、測(cè)試、運(yùn)行過(guò)程都是必須的。
test測(cè)試依賴(lài)范圍。使用此依賴(lài)范圍的 Maven 依賴(lài),只對(duì)測(cè)試 classpath 有效。例如,Junit 依賴(lài)只有在測(cè)試階段才需要。
provided已提供依賴(lài)范圍。使用此依賴(lài)范圍的 Maven 依賴(lài),只對(duì)編譯 classpath 和測(cè)試 classpath 有效。例如,servlet-api 依賴(lài)對(duì)于編譯、測(cè)試階段而言是需要的,但是運(yùn)行階段,由于外部容器已經(jīng)提供,故不需要 Maven 重復(fù)引入該依賴(lài)。
runtime運(yùn)行時(shí)依賴(lài)范圍。使用此依賴(lài)范圍的 Maven 依賴(lài),只對(duì)測(cè)試 classpath、運(yùn)行 classpath 有效。例如,JDBC 驅(qū)動(dòng)實(shí)現(xiàn)依賴(lài),其在編譯時(shí)只需 JDK 提供的 JDBC 接口即可,只有測(cè)試、運(yùn)行階段才需要實(shí)現(xiàn)了 JDBC 接口的驅(qū)動(dòng)。
system系統(tǒng)依賴(lài)范圍,其效果與 provided 的依賴(lài)范圍一致。其用于添加非 Maven 倉(cāng)庫(kù)的本地依賴(lài),通過(guò)依賴(lài)元素 dependency 中的 systemPath 元素指定本地依賴(lài)的路徑。鑒于使用其會(huì)導(dǎo)致項(xiàng)目的可移植性降低,一般不推薦使用。
import導(dǎo)入依賴(lài)范圍,該依賴(lài)范圍只能與 dependencyManagement 元素配合使用,其功能是將目標(biāo) pom.xml 文件中 dependencyManagement 的配置導(dǎo)入合并到當(dāng)前 pom.xml 的 dependencyManagement 中。

主要的三種依賴(lài)范圍為complie、test、provided。

2. ## Maven依賴(lài)傳遞和依賴(lài)沖突

2.1 Maven依賴(lài)傳遞特性

概念

假如有Maven項(xiàng)目A,項(xiàng)目B依賴(lài)A,項(xiàng)目C依賴(lài)B。那么我們可以說(shuō) C依賴(lài)A。也就是說(shuō),依賴(lài)的關(guān)系為:C—>B—>A, 那么我們執(zhí)行項(xiàng)目C時(shí),會(huì)自動(dòng)把B、A都下載導(dǎo)入到C項(xiàng)目的jar包文件夾中,這就是依賴(lài)的傳遞性。

作用

  • 簡(jiǎn)化依賴(lài)導(dǎo)入過(guò)程
  • 確保依賴(lài)版本正確

傳遞的原則

在 A 依賴(lài) B,B 依賴(lài) C 的前提下,C 是否能夠傳遞到 A,取決于 B 依賴(lài) C 時(shí)使用的依賴(lài)范圍以及配置

  • B 依賴(lài) C 時(shí)使用 compile 范圍:可以傳遞

  • B 依賴(lài) C 時(shí)使用 test 或 provided 范圍:不能傳遞,所以需要這樣的 jar 包時(shí),就必須在需要的地方明確配置依賴(lài)才可以。

  • B 依賴(lài) C 時(shí),若配置了以下標(biāo)簽,則不能傳遞

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version><optional>true</optional>
    </dependency>
    

依賴(lài)傳遞終止

  • 非compile范圍進(jìn)行依賴(lài)傳遞
  • 使用optional配置終止傳遞
  • 依賴(lài)沖突(傳遞的依賴(lài)已經(jīng)存在)

2.2 Maven依賴(lài)沖突特性

當(dāng)直接引用或者間接引用出現(xiàn)了相同的jar包! 這時(shí)呢,一個(gè)項(xiàng)目就會(huì)出現(xiàn)相同的重復(fù)jar包,這就算作沖突!依賴(lài)沖突避免出現(xiàn)重復(fù)依賴(lài),并且終止依賴(lài)傳遞!

maven自動(dòng)解決依賴(lài)沖突問(wèn)題能力,會(huì)按照自己的原則,進(jìn)行重復(fù)依賴(lài)選擇。同時(shí)也提供了手動(dòng)解決的沖突的方式,不過(guò)不推薦!

解決依賴(lài)沖突(如何選擇重復(fù)依賴(lài))方式:

  • 自動(dòng)選擇原則

    • 短路優(yōu)先原則(第一原則)

      A—>B—>C—>D—>E—>X(version 0.0.1)

      A—>F—>X(version 0.0.2)

      則A依賴(lài)于X(version 0.0.2)。

    • 依賴(lài)路徑長(zhǎng)度相同情況下,則“先聲明優(yōu)先”(第二原則)

      A—>E—>X(version 0.0.1)

      A—>F—>X(version 0.0.2)

      在<depencies></depencies>中,先聲明的,路徑相同,會(huì)優(yōu)先選擇!

  • 手動(dòng)排除

    <dependency><groupId>org.kkk.maven</groupId><artifactId>maven-java</artifactId><version>1.0-SNAPSHOT</version><scope>compile</scope><!-- 使用excludes標(biāo)簽配置依賴(lài)的排除  --><exclusions><!-- 在exclude標(biāo)簽中配置一個(gè)具體的排除 --><exclusion><!-- 指定要排除的依賴(lài)的坐標(biāo)(不需要寫(xiě)version) --><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
    </dependency>
    

3. Maven工程繼承和聚合

3.1 Maven工程繼承

  • 繼承概念

    Maven 繼承是指在 Maven 的項(xiàng)目中,讓一個(gè)項(xiàng)目從另一個(gè)項(xiàng)目中繼承配置信息的機(jī)制。繼承可以讓我們?cè)诙鄠€(gè)項(xiàng)目中共享同一配置信息,簡(jiǎn)化項(xiàng)目的管理和維護(hù)工作。

  • 繼承作用

    在父工程中統(tǒng)一管理項(xiàng)目中的依賴(lài)信息。

    它的背景是:

    • 對(duì)一個(gè)比較大型的項(xiàng)目進(jìn)行了模塊拆分。
    • 一個(gè) project 下面,創(chuàng)建了很多個(gè) module。
    • 每一個(gè) module 都需要配置自己的依賴(lài)信息。

    它背后的需求是:

    • 在每一個(gè) module 中各自維護(hù)各自的依賴(lài)信息很容易發(fā)生出入,不易統(tǒng)一管理。
    • 使用同一個(gè)框架內(nèi)的不同 jar 包,它們應(yīng)該是同一個(gè)版本,所以整個(gè)項(xiàng)目中使用的框架版本需要統(tǒng)一。
    • 使用框架時(shí)所需要的 jar 包組合(或者說(shuō)依賴(lài)信息組合)需要經(jīng)過(guò)長(zhǎng)期摸索和反復(fù)調(diào)試,最終確定一個(gè)可用組合。這個(gè)耗費(fèi)很大精力總結(jié)出來(lái)的方案不應(yīng)該在新的項(xiàng)目中重新摸索。
    • 通過(guò)在父工程中為整個(gè)項(xiàng)目維護(hù)依賴(lài)信息的組合既保證了整個(gè)項(xiàng)目使用規(guī)范、準(zhǔn)確的 jar 包;又能夠?qū)⒁酝慕?jīng)驗(yàn)沉淀下來(lái),節(jié)約時(shí)間和精力。
  • 繼承語(yǔ)法

    • 父工程

        <groupId>org.kkk.maven</groupId><artifactId>maven-parent</artifactId><version>1.0-SNAPSHOT</version><!-- 當(dāng)前工程作為父工程,它要去管理子工程,所以打包方式必須是 pom --><packaging>pom</packaging>
    • 子工程

      <!-- 使用parent標(biāo)簽指定當(dāng)前工程的父工程 -->
      <parent><!-- 父工程的坐標(biāo) --><groupId>org.kkk.maven</groupId><artifactId>maven-parent</artifactId><version>1.0-SNAPSHOT</version>
      </parent><!-- 子工程的坐標(biāo) -->
      <!-- 如果子工程坐標(biāo)中的groupId和version與父工程一致,那么可以省略 -->
      <!-- <groupId>org.kkk.maven</groupId> -->
      <artifactId>maven-module</artifactId>
      <!-- <version>1.0-SNAPSHOT</version> -->
      
  • 父工程依賴(lài)統(tǒng)一管理

    • 父工程聲明版本

      <!-- 使用dependencyManagement標(biāo)簽配置對(duì)依賴(lài)的管理 -->
      <!-- 被管理的依賴(lài)并沒(méi)有真正被引入到工程 -->
      <dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>6.0.10</version></dependency></dependencies>
      </dependencyManagement>
      
    • 子工程引用版本

      <!-- 子工程引用父工程中的依賴(lài)信息時(shí),可以把版本號(hào)去掉。  -->
      <!-- 把版本號(hào)去掉就表示子工程中這個(gè)依賴(lài)的版本由父工程決定。 -->
      <!-- 具體來(lái)說(shuō)是由父工程的dependencyManagement來(lái)決定。 -->
      <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></dependency>
      </dependencies>
      

3.2 Maven工程聚合

  • 聚合概念

    Maven 聚合是指將多個(gè)項(xiàng)目組織到一個(gè)父級(jí)項(xiàng)目中,以便一起構(gòu)建和管理的機(jī)制。聚合可以幫助我們更好地管理一組相關(guān)的子項(xiàng)目,同時(shí)簡(jiǎn)化它們的構(gòu)建和部署過(guò)程。簡(jiǎn)單地講,將多個(gè)項(xiàng)目聚合到一個(gè)父級(jí)項(xiàng)目中,那么可以通過(guò)對(duì)父級(jí)項(xiàng)目進(jìn)行構(gòu)建達(dá)到同時(shí)構(gòu)建多個(gè)子項(xiàng)目的效果。

  • 聚合作用

    • 管理多個(gè)子項(xiàng)目:通過(guò)聚合,可以將多個(gè)子項(xiàng)目組織在一起,方便管理和維護(hù)。
    • 構(gòu)建和發(fā)布一組相關(guān)的項(xiàng)目:通過(guò)聚合,可以在一個(gè)命令中構(gòu)建和發(fā)布多個(gè)相關(guān)的項(xiàng)目,簡(jiǎn)化了部署和維護(hù)工作。
    • 優(yōu)化構(gòu)建順序:通過(guò)聚合,可以對(duì)多個(gè)項(xiàng)目進(jìn)行順序控制,避免出現(xiàn)構(gòu)建依賴(lài)混亂導(dǎo)致構(gòu)建失敗的情況。
    • 統(tǒng)一管理依賴(lài)項(xiàng):通過(guò)聚合,可以在父項(xiàng)目中管理公共依賴(lài)項(xiàng)和插件,避免重復(fù)定義。
  • 聚合語(yǔ)法

    父項(xiàng)目中包含的子項(xiàng)目列表。在父項(xiàng)目的modules模塊中引入子項(xiàng)目的信息。

    <project><groupId>com.example</groupId><artifactId>parent-project</artifactId><packaging>pom</packaging><version>1.0.0</version><modules><module>child-project1</module><module>child-project2</module></modules>
    </project>
    
http://www.risenshineclean.com/news/10845.html

相關(guān)文章:

  • 高州網(wǎng)站建設(shè)公司百度指數(shù)怎么查
  • 大理裝飾公司做網(wǎng)站營(yíng)銷(xiāo)策劃書(shū)模板
  • 樂(lè)站_網(wǎng)站建設(shè)_自助建站網(wǎng)絡(luò)軟文營(yíng)銷(xiāo)
  • android移動(dòng)應(yīng)用開(kāi)發(fā)網(wǎng)站排名優(yōu)化價(jià)格
  • 晉中網(wǎng)站建設(shè)公司百度我的訂單
  • 在線手機(jī)網(wǎng)站建設(shè)百度官方網(wǎng)站下載
  • 做網(wǎng)站用python好嗎北京seo專(zhuān)業(yè)團(tuán)隊(duì)
  • 網(wǎng)站建設(shè)英文專(zhuān)業(yè)術(shù)語(yǔ)廈門(mén)網(wǎng)站快速排名優(yōu)化
  • 免費(fèi) 微網(wǎng)站友情鏈接的定義
  • 不寫(xiě)編程可以做網(wǎng)站建設(shè)怎么推廣網(wǎng)址
  • 做最最優(yōu)秀的視頻網(wǎng)站有哪些怎么發(fā)布信息到百度
  • l林州住房建設(shè)部官方網(wǎng)站seo查詢(xún)是什么意思
  • 如何在自己的網(wǎng)站上做h5頁(yè)面阿里云搜索引擎入口
  • 哈爾濱工程研究生招生信息網(wǎng)seo必備軟件
  • 創(chuàng)個(gè)網(wǎng)站怎么弄電腦培訓(xùn)學(xué)校
  • led 網(wǎng)站建設(shè)網(wǎng)級(jí)移動(dòng)營(yíng)銷(xiāo)app下載
  • 網(wǎng)站代碼怎么改線上運(yùn)營(yíng)的5個(gè)步驟
  • wordpress教程appseo關(guān)鍵詞布局案例
  • 合肥做網(wǎng)站的的公司有哪些百度推廣要多少錢(qián)
  • wordpress的網(wǎng)站怎么讓他上線網(wǎng)絡(luò)營(yíng)銷(xiāo)的職能是什么
  • wordpress 谷歌西seo優(yōu)化排名
  • 醫(yī)療網(wǎng)站不備案百度熱搜榜排名今日頭條
  • 網(wǎng)站建設(shè)需要什么谷歌google 官網(wǎng)下載
  • 公司名稱(chēng)大全四個(gè)字seo的工作原理
  • php網(wǎng)站服務(wù)器搭建杭州百度首頁(yè)排名
  • 網(wǎng)站開(kāi)發(fā)簡(jiǎn)歷項(xiàng)目經(jīng)驗(yàn)seo服務(wù)工程
  • 手機(jī)網(wǎng)站淘寶客網(wǎng)站建設(shè)找哪家公司好
  • 網(wǎng)站制作設(shè)計(jì)正規(guī)公司市場(chǎng)調(diào)研表模板
  • 做旅行社的都是在哪網(wǎng)站拿票公司網(wǎng)站如何制作設(shè)計(jì)
  • 鄭州網(wǎng)站建設(shè)品牌好網(wǎng)絡(luò)推廣靠譜嗎