2009-10-01 166 views
6

有沒有辦法從另一個Maven安裝命令觸發Maven安裝命令?從另一個Maven安裝命令觸發Maven安裝命令

換句話說,我希望能夠在maven項目上執行maven install命令(在eclipse中),我希望這會自動在另一個maven項目上產生一個安裝命令。 這可能嗎?

回答

4

「觸發」另一個版本的Maven方式是定義一個multi-module build。父pom項目可以指定模塊,這些模塊都將使用標準生命週期構建。所以在父母上運行mvn install意味着每個模塊都是依次構建的。

父與pom packagin限定,並且將有一個模塊聲明這樣的:

<modules> 
    <module>module-a</module> 
    <module>module-b</module> 
</modules> 

或者,也可以附加其他僞影因此它們一起部署的主僞影的生成(假設他們「VE已經被打包,則可以使用build-helper-maven-pluginattach任意文件到您的POM,所以它會與指定的分類進行部署。下面的配置將指定文件附加爲my-artifact-1.0-extra.jar

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
     <execution> 
     <id>attach-artifacts</id> 
     <phase>package</phase> 
     <goals> 
      <goal>attach-artifact</goal> 
     </goals> 
     <configuration> 
      <artifacts> 
      <artifact> 
       <file>/path/to/extra/file.jar</file> 
       <type>jar</type><!--or specify your required extension--> 
       <classifier>extra</classifier> 
      </artifact> 
      </artifacts> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
4

正如指出的那樣,在一組模塊上啓動一個目標(可以說是mvn install)的maven方法是將它們組織爲一個多模塊項目,並在父pom上啓動目標。在幕後,Maven將爲這項工作使用「Maven反應堆」。反應器將通過對由模塊之間的依賴關係構建的有向圖的節點進行拓撲排序來計算構建順序。該圖是通過在poms中查看<modules><dependencies>標籤構建的。

但是從父啓動Maven是不是唯一的選擇和Maven提供了更多的可能性與反應器玩(例如制定項目和它的依賴或那些依賴於它):

檢查出來,它可以幫助你實現你的目標。