GradleのマルチプロジェクトでJavaDocを一箇所にまとめて出力する

GitHub - nebula-plugins/gradle-aggregate-javadocs-plugin: Provides the ability to aggregate Javadocs across all projects in a multi-project build.
を使う

$ gradle init --type java-library

でいくつかプロジェクトを作って階層構造に並べなおす。

.
├── build.gradle
├── gradle
│ └── wrapper
│     ├── gradle-wrapper.jar
│     └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
├── suba
│   ├── build.gradle
│   ├── gradle
│   │   └── wrapper
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── src
│       ├── main
│       │   └── java
│       │       └── Library1.java
│       └── test
│           └── java
│               └── LibraryTest.java
├── subb
│   ├── build.gradle
│   ├── gradle
│   │   └── wrapper
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── src
│       ├── main
│       │   └── java
│       │       └── Library2.java
│       └── test
│           └── java
│               └── LibraryTest.java
└── tree.txt

18 directories, 21 files
/*
 * This build file was auto generated by running the Gradle 'init' task
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.9/userguide/tutorial_java_projects.html
 */

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.13'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
}

buildscript {
    repositories { jcenter() }

    dependencies {
        classpath 'com.netflix.nebula:gradle-aggregate-javadocs-plugin:2.2.+'
    }
}

apply plugin: 'nebula-aggregate-javadocs'
/*
 * This settings file was auto generated by the Gradle buildInit task
 *
 * The settings file is used to specify which projects to include in your build.
 * In a single project build this file can be empty or even removed.
 *
 * Detailed information about configuring a multi-project build in Gradle can be found
 * in the user guide at https://docs.gradle.org/2.9/userguide/multi_project_builds.html
 */

/*
// To declare projects as part of a multi-project build use the 'include' method
include 'shared'
include 'api'
include 'services:webservice'


//rootProject.name = 'subb'

include 'suba'
include 'subb'
$ gradle aggregateJavadocs
:suba:compileJava
:suba:processResources UP-TO-DATE
:suba:classes
:suba:javadoc
:subb:compileJava
:subb:processResources UP-TO-DATE
:subb:classes
:subb:javadoc
:aggregateJavadocs

BUILD SUCCESSFUL

Total time: 9.984 secs

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.9/userguide/gradle_daemon.html
$ tree 
.
├── build
│   ├── docs
│   │   └── javadoc
│   │       ├── Library1.html
│   │       ├── Library2.html
│   │       ├── allclasses-frame.html
│   │       ├── allclasses-noframe.html
│   │       ├── constant-values.html
│   │       ├── deprecated-list.html
│   │       ├── help-doc.html
│   │       ├── index-all.html
│   │       ├── index.html
│   │       ├── overview-tree.html
│   │       ├── package-frame.html
│   │       ├── package-list
│   │       ├── package-summary.html
│   │       ├── package-tree.html
│   │       ├── script.js
│   │       └── stylesheet.css
│   └── tmp
│       └── aggregateJavadocs
│           └── javadoc.options
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
├── suba
│   ├── build
│   │   ├── classes
│   │   │   └── main
│   │   │       └── Library1.class
│   │   ├── dependency-cache
│   │   ├── docs
│   │   │   └── javadoc
│   │   │       ├── Library1.html
│   │   │       ├── allclasses-frame.html
│   │   │       ├── allclasses-noframe.html
│   │   │       ├── constant-values.html
│   │   │       ├── deprecated-list.html
│   │   │       ├── help-doc.html
│   │   │       ├── index-all.html
│   │   │       ├── index.html
│   │   │       ├── overview-tree.html
│   │   │       ├── package-frame.html
│   │   │       ├── package-list
│   │   │       ├── package-summary.html
│   │   │       ├── package-tree.html
│   │   │       ├── script.js
│   │   │       └── stylesheet.css
│   │   └── tmp
│   │       ├── compileJava
│   │       │   └── emptySourcePathRef
│   │       └── javadoc
│   │           └── javadoc.options
│   ├── build.gradle
│   ├── gradle
│   │   └── wrapper
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── src
│       ├── main
│       │   └── java
│       │       └── Library1.java
│       └── test
│           └── java
│               └── LibraryTest.java
├── subb
│   ├── build
│   │   ├── classes
│   │   │   └── main
│   │   │       └── Library2.class
│   │   ├── dependency-cache
│   │   ├── docs
│   │   │   └── javadoc
│   │   │       ├── Library2.html
│   │   │       ├── allclasses-frame.html
│   │   │       ├── allclasses-noframe.html
│   │   │       ├── constant-values.html
│   │   │       ├── deprecated-list.html
│   │   │       ├── help-doc.html
│   │   │       ├── index-all.html
│   │   │       ├── index.html
│   │   │       ├── overview-tree.html
│   │   │       ├── package-frame.html
│   │   │       ├── package-list
│   │   │       ├── package-summary.html
│   │   │       ├── package-tree.html
│   │   │       ├── script.js
│   │   │       └── stylesheet.css
│   │   └── tmp
│   │       ├── compileJava
│   │       │   └── emptySourcePathRef
│   │       └── javadoc
│   │           └── javadoc.options
│   ├── build.gradle
│   ├── gradle
│   │   └── wrapper
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── src
│       ├── main
│       │   └── java
│       │       └── Library2.java
│       └── test
│           └── java
│               └── LibraryTest.java
└── tree.txt

43 directories, 72 files