欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

微服務中如何使用Maven的BOM來管理版本依賴-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“微服務中如何使用Maven的BOM來管理版本依賴”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“微服務中如何使用Maven的BOM來管理版本依賴”這篇文章吧。

為漢川等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務,及漢川網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務為網(wǎng)站設(shè)計、網(wǎng)站制作、漢川網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

BOM簡介

BOM(Bill of Materials)是由Maven提供的功能,它通過定義一整套相互兼容的jar包版本集合,使用時只需要依賴該BOM文件,即可放心的使用需要的依賴jar包,且無需再指定版本號。BOM的維護方負責版本升級,并保證BOM中定義的jar包版本之間的兼容性。

為什么要使用BOM

使用BOM除了可以方便使用者在聲明依賴的客戶端時不需要指定版本號外,最主要的原因是可以解決依賴沖突,如考慮以下的依賴場景:

項目A依賴項目B 2.1和項目C 1.2版本: 項目B 2.1依賴項目D 1.1版本; 項目C 1.2依賴項目D 1.3版本;

在該例中,項目A對于項目D的依賴就會出現(xiàn)沖突,按照maven dependency mediation的規(guī)則,最后生效的可能是:項目A中會依賴到項目D1.1版本(就近原則,取決于路徑和依賴的先后,和Maven版本有關(guān)系)。

在這種情況下,由于項目C依賴1.3版本的項目D,但是在運行時生效的確是1.1版本,所以在運行時很容易產(chǎn)生問題,如 NoSuchMethodError, ClassNotFoundException等。

如何定義BOM

BOM本質(zhì)上是一個普通的POM文件,區(qū)別是對于使用方而言,生效的只有<dependencyManagement>這一個部分。只需要在<dependencyManagement>定義對外發(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>  <groupId>com.ydj.qd</groupId>  <artifactId>inf-bom</artifactId>  <version>1.0</version>  <packaging>pom</packaging>  <name>inf-bom</name>  <description>第三方j(luò)ar包統(tǒng)一管理</description>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>    <java.version>1.8</java.version>    <spring.version>4.3.15.RELEASE</spring.version>  </properties>  <dependencyManagement>    <dependencies>      <!-- 阿里 -->      <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->      <dependency>        <groupId>com.alibaba</groupId>        <artifactId>druid</artifactId>        <version>1.1.12</version>      </dependency>      <!-- https://mvnrepository.com/artifact/com.aliyun.mns/aliyun-sdk-mns -->      <dependency>        <groupId>com.aliyun.mns</groupId>        <artifactId>aliyun-sdk-mns</artifactId>        <version>1.1.8</version>        <classifier>jar-with-dependencies</classifier>      </dependency>      <dependency>        <groupId>com.alibaba</groupId>        <artifactId>fastjson</artifactId>        <version>1.2.29</version>      </dependency>      <!-- Apache -->      <dependency>        <groupId>org.apache.commons</groupId>        <artifactId>commons-lang3</artifactId>        <version>3.3.2</version>      </dependency>      <dependency>        <groupId>commons-collections</groupId>        <artifactId>commons-collections</artifactId>        <version>3.2.2</version>      </dependency>      <dependency>        <groupId>org.apache.commons</groupId>        <artifactId>commons-collections4</artifactId>        <version>4.1</version>      </dependency>      <dependency>        <groupId>commons-beanutils</groupId>        <artifactId>commons-beanutils</artifactId>        <version>1.9.1</version>      </dependency>      <!-- 谷歌 -->      <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->      <dependency>        <groupId>com.google.guava</groupId>        <artifactId>guava</artifactId>        <version>27.0.1-jre</version>      </dependency>      <dependency>        <groupId>com.google.code.gson</groupId>        <artifactId>gson</artifactId>        <version>2.8.5</version>      </dependency>      <!-- 常用工具 -->      <dependency>        <groupId>joda-time</groupId>        <artifactId>joda-time</artifactId>        <version>2.7</version>      </dependency>      <dependency>        <groupId>org.projectlombok</groupId>        <artifactId>lombok</artifactId>        <version>1.14.4</version>      </dependency>    </dependencies>  </dependencyManagement>  <build>  </build>  <distributionManagement>    <repository>      <id>maven-releases</id>      <name>maven-releases</name>      <url>http://mvn.ydj.com/repository/maven-releases/</url>    </repository>    <snapshotRepository>      <id>maven-snapshots</id>      <name>maven-snapshots</name>      <url>http://mvn.ydj.com/repository/maven-snapshots/</url>    </snapshotRepository>  </distributionManagement></project>

項目使用方法

在你的項目主pom.xml文件中<dependencyManagement></dependencyManagement>節(jié)點下首位處加入如下:

<dependencyManagement>  <dependencies>     <dependency>      <groupId>com.jlcx.qd</groupId>      <artifactId>inf-bom</artifactId>      <version>${version}</version>      <type>pom</type>      <scope>import</scope>     </dependency>          <dependency>      ...     </dependency>  </dependencies></dependencyManagement>

在需要使用相關(guān)JAR包的pom.xml文件中<dependencies></dependencies>節(jié)點下引入如下:

<dependencies>  ...  <dependency>    <groupId>com.google.guava</groupId>    <artifactId>guava</artifactId>  </dependency>  <dependency>    <groupId>commons-collections</groupId>    <artifactId>commons-collections</artifactId>  </dependency>  ....</dependencies>

如果需要使用不同于當前bom中所維護的jar包版本,則加上<version>覆蓋即可,如:

<dependencies>  ...  <dependency>    <groupId>com.google.guava</groupId>    <artifactId>guava</artifactId>  </dependency>  <dependency>    <groupId>commons-collections</groupId>    <artifactId>commons-collections</artifactId>    <version>3.2.1</version>  </dependency>  ....</dependencies>

以上是“微服務中如何使用Maven的BOM來管理版本依賴”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標題:微服務中如何使用Maven的BOM來管理版本依賴-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://aaarwkj.com/article36/pgipg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站維護微信小程序、網(wǎng)站建設(shè)定制開發(fā)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
国产亚洲av麻豆精品推荐| 国产精品熟女一区二区三区| 亚洲一区二区三区 日韩精品| 欧美日韩另类中文字幕| 久久精品人妻少妇一区二区| 日韩高清av不卡一区二区三区| av蜜臀一区二区三区| av熟女一区二区三区| 日韩人妻中文字幕亚洲| 亚洲久久精品一区二区| 久久精品国产亚洲av久| 国产女同一区二区三区久久| 91无人区一区二区三乱码| av东京热免费看一区| 日本中文字幕一区二区视频| 欧美精品在线观看不卡一区| 色婷婷av一区二区三| 蜜臀av在线播放黑丝| 国产精品十八禁在线看| 亚洲一区二区日韩在线| 国产三级精品三级专区| 97成品视频在线播放| 国产日韩精品国产二区| 日韩在线观看精品亚洲| 亚洲熟妇亚洲熟妇亚洲熟妇| 十八女毛片一区二区三区| 国产午夜激情在线播放| 国产精品呦呦国产精品尤物| 欧美一区日韩二区在线| 粉嫩一区二区三区av| 中国吞精囗交免费视频| 国产又粗又长又爽网站| 亚洲国产色一区二区三区| 欧美在线免费黄片视频| 国产三级在线视频不卡| 亚洲欧美日韩国产成人精品| 欧美美女福利午夜视频| 天堂av在线一区二区三区| 欧美内射专区精品一区| 国产黄色片网站在线观看| 欧美黄色一区二区三区精品 |