[英]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
在包含platform
和us-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
來指定諸如B
的c
子項目。 -pl B\\c,C\\a
這樣的逗號分隔符更多,可以同時執行B\\c
和C\\a
。 -foo
),則仍可以像-pl \\-foo
一樣使用它。 -amd
(或--also-make-dependents
)還將構建依賴於整個反應堆中列表中所有內容的所有內容(例如,當您不使用-pl <projects>
),即它們的依賴項
-am
(或--also-make
)還將從整個反應堆中構建列表依賴的所有內容。 即他們的依賴關系。 A
是對B
的依賴 C
和D
是B
依存關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.