2011-06-08 67 views
0

我有一個Maven模塊負責構建一些其他模塊(戰爭)中的文檔。所有工作正常 - >在構建我結合像javadoc,wadl,大會等幾個插件來執行我想要的。現在看來我需要爲多個版本構建相同的文檔(所以我們有doc和trunk版本以及舊版本)。我試圖使用像下面的配置文件。問題是,即使兩個配置文件都處於活動狀態,每個插件只執行一次(即使它們具有不同的執行ID)。任何想法爲什麼以及如何觸發每個插件在每個配置文件中運行一次?Maven - 根據配置文件運行一次插件

<dependencies> 
    <!-- common dependencies --> 
</dependencies> 
<properties> 
    <!-- ${versionToBuild} is defined by each profile --> 
    <output.name>doc-${versionToBuild}</output.name> 
    <!-- other common properties or based on a property defined by profile --> 
</properties> 
<build> 
    <pluginManagement> 
     <plugins> 
     <!-- configuration for plugins based on $versionToBuild --> 
     </plugins> 
    </pluginManagement> 
</build> 
<profiles> 
    <profile> 
    <id>doc-for-1.1</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
    <properties> 
     <versionToBuild>1.1-SNAPSHOT</versionToBuild> 
    </properties> 
    <dependencies> 
     <!-- the artefacts of my project in v1.1 --> 
    </dependencies> 
    <build> 
     <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>com.sun.jersey.contribs</groupId> 
      <artifactId>maven-wadl-plugin</artifactId> 
     </plugin> 
     <plugins> 
    </build> 
    </profile> 
    <profile> 
    <id>doc-for-1.2</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
    <properties> 
     <versionToBuild>1.2-SNAPSHOT</versionToBuild> 
    </properties> 
    <dependencies> 
     <!-- the artefacts of my project in v1.2 --> 
    </dependencies> 
    <build> 
     <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>com.sun.jersey.contribs</groupId> 
      <artifactId>maven-wadl-plugin</artifactId> 
     </plugin> 
     <plugins> 
    </build> 
    </profile> 
</profiles> 

回答

1

我不認爲你可以做你想做的事,而不會違背Maven的工作原理。它會欺騙合併重疊的插件配置,比如你的。你可能將每個插件綁定到其默認的不同階段(確保它們在v1.1和v1.2中不同),但它非常黑客。

相反,我建議在v1.1和v1.2的源代碼管理上有單獨的分支,而不是POM與版本歷史緊密耦合。您可以通過檢出適當的分支來爲每個版本構建文檔。

+0

你是對的。最簡單的方法是使用單獨的文檔模塊。如果這是可能的,我更加好奇。理論上你可以有多個執行每個模塊,所以這應該工作。 – 2011-06-08 12:35:14