簡體   English   中英

有沒有一種方法可以在Maven中的不同多模塊項目中構建項目以及依賴該項目的項目?

[英]Is there a way to build a project and the projects that depend on it from different multimodule projects in maven?

假設我有項目A,B,C和D。B取決於A,C取決於B,D取決於C,就像這樣

A <-- B <-- C
      ^
      └ --- D

Maven有沒有辦法在給定B的情況下構建C和D但不構建A的方法? 就像這樣, 有沒有一種方法可以構建項目以及依賴該項目的項目?

A,B,C和D在多模塊項目中。 我知道我可以建立整個項目,但這似乎是浪費。

編輯:針對這種情況的解決方案,在多模塊項目的根目錄中執行mvn <your goals here> -pl B -amd ,僅供進一步參考,說B也是一個多模塊項目,並且其中包含a,b和c而您想用c做mvn <your goals here> -pl B\\c -amd

另外, 如果A和B在一個多模塊項目中,而C和D在另一個多模塊項目中有沒有辦法做到這一點? 我意識到這可能會比較棘手。

 platform | us-specific
          |
A <-- B <-+-- C
      ^   |
      └ --+-- D

在包含platformus-specific的文件夾中添加一個pom文件,如下所示:

<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>some.group</groupId>
  <artifactId>handyPom</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <modules>
    <module>platform</module>
    <module>us-specific</module>
  </modules>
  <name>Captain Man's Handy Dandy Pom</name>
</project>

包裝需要是pom並且您需要為每個要包含的東西提供一個模塊。 您可以根據需要更改名稱。

如上所述,您執行mvn <your goals here> -pl B -amd

  • -pl (或--projects )指定項目列表,而不是構建每個項目。
    • 您可以通過執行-pl B\\c來指定諸如Bc子項目。
    • 它是一個列表 ,因此,像-pl B\\c,C\\a這樣的逗號分隔符更多,可以同時執行B\\cC\\a
    • 如果由於某種原因您的目錄帶有前導破折號(例如-foo ),則仍可以像-pl \\-foo一樣使用它。
  • -amd (或--also-make-dependents )還將構建依賴於整個反應堆中列表中所有內容的所有內容(例如,當您不使用-pl <projects> ),即它們的依賴項
    • 此外, -am (或--also-make )還將從整個反應堆中構建列表依賴的所有內容。 即他們的依賴關系。
    • 提醒有關依存關系和依存關系的問題,在問題中,箭頭是否暗示對其所指事物的依存關系,這意味着
      • A是對B的依賴
      • CDB依存關系。

暫無
暫無

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

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