亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

加載資源時,什么決定了 Maven 依賴項的行為?

加載資源時,什么決定了 Maven 依賴項的行為?

ITMISS 2022-06-23 19:34:23
我有一個 Eclipse Maven 項目,它依賴于我工作區中的其他項目。我已經將它們全部定義為從我的本地存儲庫中導入,并且 pom.xml 中的依賴語句看起來都是一致的,例如:<dependency>  <groupId>com.mycompany.mygroup</groupId>  <artifactId>Project1</artifactId>  <version>1.0.2</version></dependency><dependency>  <groupId>com.mycompany.mygroup</groupId>  <artifactId>Project2</artifactId>  <version>2.0.1</version></dependency>但是,一些項目出現在我的構建路徑中是二進制 jar 文件,帶有此圖標:二進制圖標,而其他項目則帶有我認為的“工作區項目”圖標:項目圖標。當我嘗試加載 JAR 文件中包含的資源時,這會成為一個問題:帶有“二進制 jar”圖標的項目從 JAR 中成功加載資源;帶有“工作區項目”圖標的項目嘗試轉到文件系統以獲取資源。是什么決定了它們在 Maven 依賴項列表中的顯示方式?我檢查了.project文件中的“自然”標簽,它們是相同的。
查看完整描述

1 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

此行為由Maven --> Disable/Enable Workspace Resolution具有以下行為的選項控制(

這具有改變 Maven 定位依賴項工件的方式的效果。如果項目配置為從工作區解析依賴項,則這些工件不需要存在于本地存儲庫中。假設 project-a 和 project-b 都在同一個 Eclipse 工作區中,并且 project-a 依賴于 project-b。如果禁用工作區解析,則僅當本地存儲庫中存在 project-b 的工件時,為 project-a 構建的 m2eclipse Maven 才會成功。如果啟用了工作區解析,m2eclipse 將通過 Eclipse 工作區解析依賴關系。換句話說,當啟用工作空間解析時,項目不必安裝在本地存儲庫中即可相互關聯。

這意味著如果Workspace Resolution禁用,則必須從 maven 存儲庫中讀取所有依賴項,并將顯示為在此處輸入圖像描述.

另一方面,如果Workspace Resolution啟用并且您的工作區包含一個開放項目,其所有工件信息(、、、groupId)與 中定義的相同artifactId,則該依賴項將直接引用此開放項目的源代碼。圖標將顯示為version<dependency>在此處輸入圖像描述

我不認為這可能是唯一的因素,因為一些帶有“二進制 jar”圖標的依賴項也在我的工作區中打開。

我認為很可能是因為<version>您在 中使用的與工作區中該項目pom.xml的聲明不同。<version>


查看完整回答
反對 回復 2022-06-23
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號