Maven中optional的作用

目的:

  • 控制依賴傳遞 :將依賴標記為可選,這樣當其他模塊依賴common-component時,不會自動繼承Elasticsearch依賴。這遵循了"依賴最小化"原則,避免不必要的庫被引入到不需要它們的模塊中。
  • 模塊化設計 :jetlinks框架采用模塊化設計,common-component作為通用基礎組件,不應該強制所有使用它的模塊都引入Elasticsearch相關功能。通過optional配置,實現了功能的可選性和靈活性。
  • 避免版本沖突 :防止多個模塊引入不同版本的Elasticsearch庫導致沖突,讓實際需要Elasticsearch的模塊自行管理其依賴版本。

示例:

common 模塊有這么個依賴

<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><optional>true</optional>
</dependency>

模塊A引入了 common模塊

  <dependency><groupId>org.jetlinks.pro</groupId><artifactId>common-component</artifactId><version>${project.version}</version></dependency>

此時 common的 elasticsearch 依賴不會傳遞給 A,也就是說 A 是沒有 elasticsearch 依賴的,想要這個依賴需要自己單獨再引入 elasticsearch,如果想要繼承 common 的 elasticsearch,那就去掉 optional 標簽即可

【另一種情況】

common 模塊的 elasticsearch 去掉了 optional 標簽,模塊 A 引入了 common,同時模塊A自己又單獨引入了 elasticsearch ,此時會發生依賴沖突嗎?

  • 如果兩處的 elasticsearch 版本一致,則不會,maven會優先使用模塊A自己的 elasticsearch 依賴
  • 如果兩處的版本不一致,則會發生依賴沖突

如果發生了沖突,又不能修改 common 的 pom 文件,我們想用自己引入的依賴,可以選擇在引入 common 時排除 common 模塊的elasticsearch

<dependency><groupId>org.jetlinks.pro</groupId><artifactId>common-component</artifactId><version>${project.version}</version><exclusions><!-- 排除common-component中的r2dbc-spi依賴,使用本模塊中直接聲明的版本 --><exclusion><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId></exclusion></exclusions></dependency>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96602.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

藍橋杯算法之基礎知識(7)---排序題的快排和歸并排序

一、快排》快排方法&#xff0c;就三步1.隨便選一個值作為基準值x2.拿選中的這個x值劃分隊列為左右兩個區間&#xff08;左邊的都小于x&#xff0c;右邊的都大于x&#xff09;3.然后遞歸左區間和右區間就行》代碼舉例&#xff1a;#qs排序#1 6 7 8 6 5 4 #先找比較點&#xff0c…

緩存未命中

緩存未命中&#xff08;Cache Miss&#xff09; 發生在 CPU 訪問某塊內存時&#xff0c;該地址不在當前緩存&#xff08;L1/L2/L3&#xff09;中&#xff0c;導致程序被迫從更慢的內存&#xff08;RAM&#xff09;讀取數據&#xff0c;嚴重拖慢程序執行速度。 &#x1f4cd; 一…

AR眼鏡:化工安全生產的技術革命

在石化企業的壓縮機組巡檢中&#xff0c;佩戴AR眼鏡的巡檢員眼前實時顯示著設備溫度場分布和振動頻譜曲線&#xff0c;單臺設備巡檢時間從45分鐘縮短至18分鐘。這不僅是效率的提升&#xff0c;更是化工安全生產的一場智能革命。一、行業痛點&#xff1a;傳統化工巡檢的困境與挑…

消息中間件RabbitMQ(從入門到精通)

RabbitMQ概念_MQ 消息隊列 MQ全稱Message Queue(消息隊列),是在消息的傳輸過程中保存消息的容器。多用于系統之間的異步通信。 同步通信相當于兩個人當面對話,你一言我一語。必須及時回復 異步通信相當于通過第三方轉述對話,可能有消息的延遲,但不需要二人時刻保持聯系。…

前端學習之后端java小白(五)之多表查詢/事務

一、多表查詢概念二、概述 1. 內連接隱式內連接 SELECT 字段列表 FROM 表1&#xff0c;表2... WHERE 條件顯示內連接SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 條件2. 外連接 左外連接SELECT 列名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 連接條件;右外連接SELECT 列名…

Java全棧學習筆記34

# JDBCjava database connection Java 數據庫連接技術## JDBC 驅動程序如果需要通過jdbc技術連接關系型數據庫&#xff0c;就需要為jdbc提供一個該數據庫的驅動。驅動程序由對應的數據庫廠商提供。mysql提供了針對于各種語言的驅動程序。去官網下載和java相關的驅動即可## JDB…

如何為MySQL中的JSON字段設置索引

背景 MySQL在2015年中發布的5.7.8版本中首次引入了JSON數據類型。自此&#xff0c;它成了一種逃離嚴格列定義的方式&#xff0c;可以存儲各種形狀和大小的JSON文檔&#xff0c;例如審計日志、配置信息、第三方數據包、用戶自定義字段等。 雖然MySQL提供了讀寫JSON數據的函數&am…

【學習日記】

1.上午看了會面經&#xff0c;八股&#xff0c;很多看不懂1.5排查本地mysql服務啟動問題2.刷了兩道題翻轉二叉樹的Dfs和bfs遞歸方法&#xff0c;看了幾分鐘看懂了&#xff0c;一開始刷題&#xff0c;沒有這種感覺&#xff0c;可能思維上升了3.下午做了會ppt4.看了ssm的一個gith…

本地大模型部署指南-Ollama與HuggingFace對比

在本地部署大模型時&#xff0c;用 Ollama 和 Hugging Face (HF) 確實有很大區別&#xff0c;涉及系統、硬件、訓練、推理方式&#xff0c;以及能否查看模型源代碼。下面我分幾個維度說明&#xff1a; 系統和安裝 Ollama 定位是「開箱即用」的本地大模型運行環境。 自帶運行時&…

河北周邊有哪些比較靠譜的智算中心?

河北省通過算力普惠、綠色能源、數據開放、金融支持四大支柱政策&#xff0c;推動智算中心高質量發展。河北及周邊地區的智算中心已形成高可靠性、先進技術和戰略協同的布局。那么&#xff0c;河北周邊有哪些比較靠譜的智算中心&#xff1f;一、河北周邊智算中心盤點?1、尚航懷…

電動汽車充電標準之 — 國標 GB/T 18487《電動汽車傳導充電系統》 簡介

GB/T 18487 的全稱是 《電動汽車傳導充電系統》 &#xff0c;它是中國電動汽車充電領域最基礎、最核心的國家標準之一。該標準規定了電動汽車傳導充電系統的通用要求、通信協議、安全要求等&#xff0c;是整個中國充電基礎設施建設的基石。 與您之前了解的IEC 61851類似&#x…

溫濕度傳感器如何守護工業制造?

在工業制造、農業養殖、倉儲物流乃至文物保護等領域&#xff0c;環境溫濕度的精確監測是保障品質與安全的關鍵。溫濕度傳感器作為無聲的守護者&#xff0c;如何通過穩定可靠的數據采集&#xff0c;為現代工業生產的精細化與智能化管理提供堅實基礎&#xff1f;本文將深入探討其…

破壁·融合·共贏:杭州大成慧谷基金與涉海科技混改項目公司正式啟航!

2025 年 7 月 15 日,一家融合國企基金實力與民企創新活力的混合所有制項目公司正式誕生——由杭州大成慧谷股權投資基金管理有限公司與山東涉海海洋生物科技有限公司共同出資設立的武創慧聚創芯科學技術(上海)有限公司,當日完成法律合規手續。此前,上海武創大智高新技術集團副總…

洛谷 P1271 【深基9.例1】選舉學生會-普及-

P1271 【深基9.例1】選舉學生會 題目描述 學校正在選舉學生會成員&#xff0c;有 nnn&#xff08;1≤n≤9991 \le n\le 9991≤n≤999&#xff09;名候選人&#xff0c;每名候選人編號分別從 111 到 nnn&#xff0c;現在收集到了 mmm&#xff08;1≤m≤20000001 \le m \le 20000…

【AI】AI 評測入門(二):Prompt 迭代實戰從“能跑通”到“能落地”

“Prompt 不是寫出來的&#xff0c;是測出來的。” ——這是我迭代 5 個版本后&#xff0c;最深的體悟。 上一篇《AI 評測入門&#xff08;一&#xff09;&#xff1a;先搞懂你的數據集)》&#xff0c;我們講了標簽體系、自測集、評測集、Langfuse 數據結構化——那是 AI 評測的…

【好靶場】SQLMap靶場攻防繞過 (一)

0x00 前言 最近遇到很多在做基礎靶場的小伙伴們都在SQLMap一把索&#xff0c;那么所幸搞一個SQLMap繞過的靶場。 我們是好靶場&#xff0c;一個立志于讓所有學習安全的同學用上好靶場的團隊。 https://github.com/haobachang-1/haobachangBlog/ https://github.com/haobach…

DeepSeek輔助編寫的利用quick_xml把xml轉為csv的rust程序

提示詞請用rust quickxml庫實現讀取xml的row和c標簽信息&#xff0c;并輸出到csv格式&#xff0c;要求是&#xff1a;數值型c&#xff0c;輸出標簽的內容&#xff0c;字符串型c(t “inlineStr”)&#xff0c;輸出的內容&#xff0c;row的r屬性表是行號&#xff0c;c的r屬性是字…

logback-spring.xml文件說明

項目里剛好用到&#xff0c;用豆包生成以下說明&#xff0c;此處作為記錄。以下是一個 logback-spring.xml 配置文件示例&#xff0c;結合了 Spring Boot 特性&#xff0c;支持環境區分、日志滾動和不同級別日志輸出&#xff0c;并包含詳細注釋&#xff1a;<?xml version&q…

專題:2025社交媒體營銷與電商融合趨勢報告:抖音、小紅書、短劇、直播全拆解|附210+份報告PDF、數據儀表盤匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p43853 原文出處&#xff1a;拓端抖音號拓端tecdat 3年前&#xff0c;電商還停留在“貨架擺貨、用戶搜關鍵詞下單”的傳統模式&#xff0c;社交媒體只是品牌“打知名度”的輔助工具&#xff1b;如今&#xff0c;用戶刷抖音直播能直接下…

大模型API密鑰生成規則分析

大模型API密鑰生成規則分析 一、核心生成原則與安全基礎 1.1 密碼學安全隨機數生成 大模型API密鑰的核心安全基礎在于高熵值隨機數生成,需滿足以下技術標準: 熵值要求:至少128位(16字節),推薦256位(32字節),通過密碼學安全偽隨機數生成器(CSPRNG)實現 生成算法:…