Maven-每个配置文件运行一次插件

Maven-每个配置文件运行一次插件,maven,Maven,我有一个Maven模块负责用其他几个模块(wars)构建一些文档。一切正常->在构建时,我结合了几个插件,如javadoc、wadl、assembly等来执行我想要的。现在看来,我需要为多个版本构建同一个文档(因此,我们有针对主干和旧版本的文档)。我尝试使用下面的配置文件。问题是,即使两个配置文件都处于活动状态,每个插件也只执行一次(即使它们有不同的执行ID)。你知道我为什么以及如何触发每个插件在每个配置文件中运行一次吗 <dependencies> <!-- common

我有一个Maven模块负责用其他几个模块(wars)构建一些文档。一切正常->在构建时,我结合了几个插件,如javadoc、wadl、assembly等来执行我想要的。现在看来,我需要为多个版本构建同一个文档(因此,我们有针对主干和旧版本的文档)。我尝试使用下面的配置文件。问题是,即使两个配置文件都处于活动状态,每个插件也只执行一次(即使它们有不同的执行ID)。你知道我为什么以及如何触发每个插件在每个配置文件中运行一次吗

<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> 

doc-${versionToBuild}
doc-for-1.1
真的
1.1-快照
maven javadoc插件
com.sun.jersey.contribs
maven wadl插件
doc-for-1.2
真的
1.2-1
maven javadoc插件
com.sun.jersey.contribs
maven wadl插件

我认为,如果不违背Maven的工作原理,你无法随心所欲。合并重叠的插件配置(如您的配置)是一种诡计。您可以将每个插件绑定到其默认的不同阶段(确保它们在v1.1和v1.2中是不同的),但这是非常粗糙的


相反,我建议在v1.1和v1.2的源代码管理上有单独的分支,而不是POM与版本历史紧密耦合。您只需签出相应的分支即可为每个版本生成文档。

您说得对。最干净的方法是使用单独的文档模块。我更好奇这是否可能。理论上,每个模块可以有多个执行,所以这应该是可行的。