簡體   English   中英

如何從父依賴 maven pom 文件中僅獲取所需的依賴

[英]How to get only required dependency from parent dependency maven pom file

我可以只包含來自父 pom 的必需依賴項(就像我們排除的那樣)嗎?

我需要這個來實現一個場景

  1. 項目 A 與 hibernate 和 spring 作為我的依賴項(還有很多其他)
  2. 項目 B 只有 hibernate 和 spring
  3. 以 A 和 B 作為依賴項的項目 C

問題陳述:當我運行 maven 安裝在項目 C 中時,hibernate 和 Z2A2D595E6ED2ED630B24D627 再次分別下載。 這是我觀察到的,因為最終 jar 大小增加了。

作為解決方法,我將項目 A 作為依賴項包含在項目 C 中,因此我不需要明確提及 hibernate 和 spring。

為避免這種情況,有沒有辦法只包含項目 A 中的 spring 和 hibernate?

聽起來您只是根據大小猜測 C jar 項目中的內容。 解壓縮最終的 jar(重命名為 .zip)並查看內部以查看 jars 實際打包的內容以弄清楚這一點。

Jars,戰爭,耳朵只是帶有清單(或多或少)的 zip 文件。

因此,您的所有依賴項都應在parent pom中定義,並且您的所有項目都應在此處定義,以防 A、B 和 C 應該是父 pom 的子項目。

在所有子 pom 中,您可以定義所有需要的依賴項而不需要版本,以便從父 pom 解析它們。

僅在需要時才應定義子項目的相互依賴關系。 為了從項目 A 中獲取依賴項,C 不應該依賴於 A。

| - - A
| - - | - - pom.xml
| - - B
| - - | - - pom.xml
| - - C
| - - | - - pom.xml
| - - pom.xml (parent pom)

如果您可以將此結構作為 github 項目,那么我可以創建一個包含更改的拉取請求。

要從您那里獲取 Spring Hibernate,您需要將 Child Parent 關系 A(Parent)和 B,C 作為 Child。

Jar 文件增量不能是這種情況。 POM.xml 確實提供了在.m2 repo 中下載的依賴項的參考。

為了進一步調查,我們需要 POM.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM