2009-10-23 137 views
8

可以做到嗎?從多模塊pom構建單模塊

環境:多模塊pom由3個模塊組成:mm1,mm2,mm3。模塊mm2具有mm1作爲依賴關係。有可能沒有任何錯誤地構建父pom。

問題:是否可以在不將mm1安裝到本地存儲庫的情況下構建單個模塊mm2(即從mm2基本目錄運行maven)?

謝謝。

+0

你魯道夫?你有免費的嗎? :D – 2009-10-23 13:21:35

+0

對不起,什麼? :) – igorp1024 2009-11-04 16:35:47

回答

3

沒有自動安裝,但可以只建立選擇的項目。你需要建立多模塊(我假設你是這樣做的)。在反應堆模式下,每個命令需要從反應堆的根部運行。

所以你的情況:

mvn reactor:make -Dmake.folders=mm2

在它所依賴(MM1)這種情況下你建立平方毫米模塊和模塊。

相關鏈接:

從書中的例子,我只建項目堅持和他的依賴項目模型。其他項目不變與 mvn reactor:make -Dmake.folders=sample-persist

alt text http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependencies.png

其他有用的命令是reactor:make-dependents其生成依賴於X.項目

0

這違背了Maven2的依賴原則。準確地做這件事的興趣是什麼?

然而,我們可以想象定義平方毫米的MM1依賴作爲system依賴性:

<dependency> 
    <groupId>...</groupId> 
    <artifactId>mm1</artifactId> 
    <version>...</version> 
    <scope>system</scope> 
    <systemPath>../mm1/target/</systemPath> 
</dependency> 
+0

這使我的眼睛出血:) – 2009-10-25 20:56:10

14

我不知道你的意思究竟是什麼的「而無需安裝MM1到本地資源庫」。你的意思是之前建立mm2或從未?

疑問,在Maven Tips and Tricks: Advanced Reactor Options博客中宣佈了新的編譯選項也許可以幫助:

使用Maven 2.1版本開始, 有新的Maven命令行 選項,讓你可以操縱 Maven將構建 多模塊項目的方式。這些新 選項是:

-rf, --resume-from 
     Resume reactor from specified project 
-pl, --projects 
     Build specified reactor projects instead of all projects 
-am, --also-make 
     If project list is specified, also build projects required by the list 
-amd, --also-make-dependents 
     If project list is specified, also build projects that depend on projects on the list 

我是專門想爲-pl-am選項。要構建模塊的子集上,從根目錄

$ mvn --projects mm2 --also-make install 

下列但是,我不知道這個回答您的問題(這是不完全清楚對我來說)。

+0

+1現在我看到,我沒有仔細閱讀您的文章,並寫了幾乎相同的答案。 – cetnar 2009-10-23 18:07:00