Following some recent post about javadoc aggregation, I tried to play
with javadoc attachments and dependency unpacking with some
success and it was quite easy. Here are the poms:

For project exporting javadoc:

<?xml version="1.0"?><project>
  <parent>
    <artifactId>merging-javadoc</artifactId>
    <groupId>oqube.maven</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>oqube.maven.javadoc</groupId>
  <artifactId>project1</artifactId>
  <version>1.0-SNAPSHOT</version>
 <build>
  <plugins>
   <plugin>
    <artifactId>maven-javadoc-plugin</artifactId>
     <executions>
     <execution>
      <id>attach-javadocs</id>
      <goals>
       <goal>jar</goal>
      </goals>
     </execution>
    </executions>
   </plugin>
  </plugins>
 </build>
</project>

For project importing javadoc:

<?xml version="1.0"?><project>
  <parent>
    <artifactId>merging-javadoc</artifactId>
    <groupId>oqube.maven</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>oqube.maven.javadoc</groupId>
  <artifactId>aggregate</artifactId>
  <version>1.0-SNAPSHOT</version>
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
     <execution>
      <id>unpack</id>
      <phase>package</phase>
      <goals>
       <goal>unpack</goal>
      </goals>
      <configuration>
       <artifactItems>
        <artifactItem>
         <groupId>oqube.maven.javadoc</groupId>
         <artifactId>project1</artifactId>
         <version>1.0-SNAPSHOT</version>
         <type>jar</type>
         <classifier>javadoc</classifier>
         <overWrite>true</overWrite>
         
<outputDirectory>${project.build.directory}/site/project1-docs/</outputDirectory>
        </artifactItem>
        <artifactItem>
         <groupId>oqube.maven.javadoc</groupId>
         <artifactId>project2</artifactId>
         <version>1.0-SNAPSHOT</version>
         <classifier>javadoc</classifier>
         <type>jar</type>
         <overWrite>true</overWrite>
         
<outputDirectory>${project.build.directory}/site/project2-docs/</outputDirectory>
        </artifactItem>
       </artifactItems>
       
<outputDirectory>${project.build.directory}/site/project2-docs/</outputDirectory>
      </configuration>
     </execution>
    </executions>
       </plugin>
  </plugins>
 </build></project>

It is then just a matter of adding links on site.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Javadoc aggregation test">
 <publishDate position="bottom" format="dd-MM-yyyy"/>
 <body>

  <menu name="API Documentation">
   <item name="Project1" href="/project1-docs/index.html"/>
   <item name="Project2" href="/project2-docs/index.html"/>
  </menu>

 </body>

</project>

Of course, this is not **true** aggregation, but it works fine. One
could achieve true aggregation using similar technique but with:
 - exporting sources 
 - unpackgin source files and tweaking javadoc plugin to use these as
   inputs 

My 2 cts.
-- 
OQube < software engineering \ génie logiciel >
Arnaud Bailly, Dr.
\web> http://www.oqube.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to