我想使用聚合目标为我的整个项目生成javadoc,但我也想为多个子项目生成javadoc jar。在我的父pom.xml中,我添加了以下pluginManagement,以允许子项目轻松生成javadoc jar:

<project>
  ...
  <build>
    <pluginManagement>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9</version>
        <executions>
          <execution>
            <goals>
              <goal>jar</goal>
            </goals>
            ...


然后在需要javadoc jar的子项目中添加:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
        </plugin>
        ...


到目前为止,一切都很好。现在,我想使用聚合目标来获取完整的javadoc集合,因此我在父pom中添加了对javadoc插件的另一个引用:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>aggregate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...


这导致javadoc插件被拉入每个子项目,而不仅仅是需要它的少数子项目。罐子目标和聚合目标似乎可以很好地独立运行,但是一起使用会引起问题。有人解决过这样的事情吗?

提前致谢!

最佳答案

我通过执行类似的操作来弄清楚了:Can I configure multiple plugin executions in pluginManagement, and choose from them in my child POM?基本上,我在两个执行中都添加了一个ID,在javadoc jar实例中添加了一个都不添加的阶段。然后,我将阶段重新覆盖,仅打包到需要javadoc jar的子项目中。这是父pom中的pluginManagement:

<project>
  ...
  <build>
    <pluginManagement>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9.1</version>
          <executions>
            <execution>
              <id>javadoc-jar</id>
              <phase>none</phase>
              <goals>
                <goal>jar</goal>
              </goals>
              ...


然后在需要的子项目pom中,打开以下Javadoc jar:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>javadoc-jar</id>
            <phase>package</phase>
          </execution>
        </executions>
      </plugin>
      ...

关于java - 同时使用javadoc的聚合和jar目标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20320378/

10-15 11:24