多模块maven javadoc构建

时间:2011-12-20 11:34:19

标签: maven maven-plugin maven-javadoc-plugin

我有像这样的多模块maven项目

myproject
  framework1
    f1-presentation
      *.java
    f1-core
      *.java
    f1-tag
      *.java

 framework2
   f2-presentation
      *.java
   f2-core
      *.java
   f2-tag
      *.java

我想为所有java文件创建apidocs。如果我在项目根目录中运行mvn javadoc:aggregate,它会在项目根目录(target / sites / apidocs)中创建apidcos。但我想要的是为每个二级模块创建这个apidocs。例如,我希望在framework1 / target / sites / apidocs中创建framework1的所有java文件的apidocs。 framework2也是如此。最终结果将是这样的

myproject
 framework1
    target/sites/apidocs (this will contain javadocs for all its submodules classes)
    f1-presentation
      *.java
    f1-core
      *.java
    f1-tag
      *.java

 framework2
    target/sites/apidocs (this will contain javadocs for all its submodules classes)
    f2-presentation
      *.java
    f2-core
      *.java
    f2-tag
      *.java

你们可以告诉我如何使用maven javadoc插件做到这一点。

编辑: framework1中的pom.xml包含

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.8</version>
            <executions>
                <execution>
                    <id>aggregate</id>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                    <phase>package</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>

  </build>

2 个答案:

答案 0 :(得分:1)

经过深入挖掘后,我发现maven javadoc插件对于multimodule项目并不是那么好用。实际上我在我的问题中想要的还没有完成。它是maven javadoc插件的一个bug。这是错误链接

http://jira.codehaus.org/browse/MJAVADOC-311

答案 1 :(得分:0)

实现此目的的一种方法是分别在framework1framework2个文件夹中运行mvn javadoc:aggregate。

另一种方法是按照this example中的规定配置framework1framework2aggregate的poms,并从mvn site运行myproject