我有一个Maven模块负责从其他几个模块(战争)中构建一些文档。一切正常 - >在构建我结合几个插件,如javadoc,wadl,汇编等来执行我想要的。现在看来我需要为多个版本构建相同的文档(因此我们有trunk和旧版本的doc)。我尝试使用如下配置的配置文件。问题是即使两个配置文件都是活动的,每个插件只执行一次(即使它们具有不同的执行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>
答案 0 :(得分:1)
我不认为你可以做你想做的事情,而不会违背Maven的工作方式。合并重叠的插件配置(例如你的配置)确实很棘手。你可以将每个插件绑定到不同的默认阶段(确保它们与v1.1和v1.2不同),但它非常hacky。
相反,我建议在v1.1和v1.2的源代码控制上使用单独的分支,而不是将POM与版本历史记录紧密耦合。您只需通过签出相应的分支为每个版本构建文档。