2013-07-24 10 views
0

在我們公司,我們通常爲衆多不同的客戶端構建大量的Flex客戶端應用程序。每個Flex應用程序通常都會在運行時加載,並且還有各種各樣的獨立Flex模塊swfs。如何在完整的產品套件版本中打包嵌套的maven模塊

我正在嘗試Mavenise這個項目,但是我很困惑,因爲如何進步。目錄結構非常平坦,但我無法想象如何對poms進行分層,以便能夠從層次結構中的任何位置進行構建。

結構可能如下:

Client1 - pom.xml 
-App1 - pom.xml 
-App2 - pom.xml 
-App3 - pom.xml 
-Module1 - pom.xml 
-Module2 - pom.xml 

Client2 - pom.xml 
-App1 - pom.xml 
-App2 - pom.xml 
-Module1 - pom.xml 
-module2 - pom.xml 
-Module3 - pom.xml 

的問題是,如果我想建立說客戶端2/App1和它的所有依賴模塊(即客戶端2 /模塊1 &客戶端2 /單詞數)。當然,我可以聲明:

<modules> 
    <module>Module1</module> 
    <module>Module2</module> 
</modules> 

的客戶端2 /應用1/pom.xml的內部,指定包爲「POM」,但是這並不讓實際編譯爲客戶端2 /應用1本身瑞士法郎。

我可以打包客戶端2 /應用1的SWF和有它建立客戶端2/App1.swf本身,而在客戶端2聲明/ pom.xml中:

<modules> 
    <module>App1</module> 
    <module>Module1</module> 
    <module>Module2</module> 
</modules> 

而是想建立客戶機2的選項/ App2也是獨立的,或者任何其他應用程序。

1)我可以使用配置文件設置不同的模塊聲明,以便於任意客戶端構建?

2)是否有另一種嵌套poms的方法,聚合器級pom也執行一些編譯目標?

3)我已經看到你可以使用除pom之外的其他名稱來添加額外的poms,以方便這一點,但似乎我不能在聲明中包含這些poms。

任何幫助/想法讚賞。

回答

0

通常你會有一個定義模塊的pom.xml(如果Client1是App1,App2,App3,Module1和Module2)如果你告訴Maven構建Client1,它會自動構建所有的客戶端模塊。一般來說,maven不支持你構建一個模塊,並讓maven自動構建它所依賴的所有模塊。然而,你可以在客戶端1-POM創建個人檔案,每個人選擇不同的子集:

<profiles> 
    <profile> 
    <id>BuildApp1</id> 
    <modules> 
     <module>App1</module> 
     <module>Module1</module> 
     <module>Module2</module> 
    </modules> 
    </profile> 
    <profile> 
    <id>BuildApp2</id> 
    <modules> 
     <module>App2</module> 
     <module>Module1</module> 
     <module>Module2</module> 
    </modules> 
    </profile> 
</profiles> 

所以,你會告訴Maven的啓動配置文件「BuildApp1」或「BuildApp2」,它會構建模塊的不同子集。