# Best approach Gradle multi-module project: generate just one global javadoc

**URL:** <https://discuss.gradle.org/t/best-approach-gradle-multi-module-project-generate-just-one-global-javadoc/18657>\
**Category:** Help/Discuss\
**Created:** [July 24, 2016, 6:34pm UTC](https://discuss.gradle.org/t/best-approach-gradle-multi-module-project-generate-just-one-global-javadoc/18657 "2016-07-24T18:34:06Z")\
**Posts on this page:** 2\
**Page:** 2

<div class="post-metadata">

**Author:** ![eric\_deandrea](https://avatars.discourse-cdn.com/v4/letter/e/ecd19e/32.png) [@eric\_deandrea](https://discuss.gradle.org/u/eric_deandrea)\
**Post date:** [February 23, 2017, 8:05pm UTC](https://discuss.gradle.org/t/best-approach-gradle-multi-module-project-generate-just-one-global-javadoc/18657/21 "2017-02-23T20:05:02Z")

</div>

Here’s a version I use that is smart enough to know what plugins are applied:

```
task aggregatedJavadocs(type: Javadoc, description: 'Generate javadocs from all child projects as if it was a single project', group: 'Documentation') {
	destinationDir = file("$buildDir/docs/javadoc")
	title = "$project.name $version API"
	options.author true
	options.links 'http://docs.spring.io/spring/docs/4.3.x/javadoc-api/', 'http://docs.oracle.com/javase/8/docs/api/', 'http://docs.spring.io/spring-ws/docs/2.3.0.RELEASE/api/', 'http://docs.spring.io/spring-security/site/docs/4.0.4.RELEASE/apidocs/'
	options.addStringOption 'Xdoclint:none', '-quiet'
	
	subprojects.each { proj ->
		proj.tasks.withType(Javadoc).each { javadocTask ->
			source += javadocTask.source
			classpath += javadocTask.classpath
			excludes += javadocTask.excludes
			includes += javadocTask.includes
		}
	}
}
```

---

<div class="post-metadata">

**Author:** ![rapekas](https://avatars.discourse-cdn.com/v4/letter/r/ac91a4/32.png) [@rapekas](https://discuss.gradle.org/u/rapekas)\
**Post date:** [March 12, 2018, 2:57pm UTC](https://discuss.gradle.org/t/best-approach-gradle-multi-module-project-generate-just-one-global-javadoc/18657/22 "2018-03-12T14:57:24Z")

</div>

Using @eric_deandrea 's version I got an exception:

```gradle
package javax.portlet does not exist

```

which has resolved by adding the following code to the task:

```gradle
options.addStringOption("sourcepath", "")

```

Google did not get me the correct answer, hope this will help others.

[Previous page](https://discuss.gradle.org/t/best-approach-gradle-multi-module-project-generate-just-one-global-javadoc/18657.md?page=1)
