GradleのマルチプロジェクトでJavaDocを一箇所にまとめて出力する
$ 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