[GRADLE-1876] Aggregation of javadocs in muli-project build is cumbersome Created: 29/Oct/11 Updated: 10/Feb/17 Resolved: 10/Feb/17 |
|
Status: | Resolved |
Project: | Gradle |
Affects Version/s: | 1.0-milestone-3 |
Fix Version/s: | None |
Type: | New Feature | ||
Reporter: | Jordan Zimmerman | Assignee: | Unassigned |
Resolution: | Won't Fix | Votes: | 5 |
Description |
As best I can tell, the only way to aggregate Javadoc for a multi-project build is: task docs(type: Javadoc) { source subprojects.collect {project -> project.sourceSets.main.allJava } classpath = files(subprojects.collect {project -> project.sourceSets.main.compileClasspath}) destinationDir = new File(projectDir, 'docs') } That bit makes Maven look easy I suggest some kind of method or propety in the subproject tag. e.g. subprojects { aggregateJavaDoc(directory) ... } |
Comments |
Comment by Andrew Oberstar [ 29/Oct/11 ] |
Or maybe a switch on the javadoc task, that has it pull information from the Javadoc tasks of its subprojects.
task docs(type: Javadoc) {
aggregateSubprojects = true
}
|
Comment by Luke Daley [ 01/Nov/11 ] |
Hi Andrew, The problem with adding a kind of shortcut syntax is that it's not quite flexible enough. Someone may want all subprojects but one for example. You can shorten the aggregate task to: task docs(type: Javadoc) { source subprojects*.javaDoc*.source classpath files(subprojects.classpath) } (BTW, the fact that you have to use files() for classpath is a bug that will be fixed) What might be good enough is a projects() method on the Javadoc task that shortcuts this… task docs(type: Javadoc) { projects subprojects } That way it's concise, yet still powerful. How does that strike you? |
Comment by Philip Crotwell [ 01/Nov/11 ] |
|
Comment by Andrew Oberstar [ 01/Nov/11 ] |
Luke, that option is definitely better than my suggestion. Philip, how would you configure that on the task? The flexibility will still be dependent on how the Javadoc task pulls information from those projects. Would it just look for a Javadoc task named "javadoc", or is there something more generic it could do? Maybe rather than adding projects, you add other Javadoc tasks that it should aggregate. task docs(type: Javadoc) { tasks subprojects*.javadoc } |
Comment by Leland Starr [ 20/Jul/12 ] |
even with work around approach: ) |
Comment by Benjamin Muschko [ 15/Nov/16 ] |
As announced on the Gradle blog we are planning to completely migrate issues from JIRA to GitHub. We intend to prioritize issues that are actionable and impactful while working more closely with the community. Many of our JIRA issues are inactionable or irrelevant. We would like to request your help to ensure we can appropriately prioritize JIRA issues you’ve contributed to. Please confirm that you still advocate for your JIRA issue before December 10th, 2016 by:
We look forward to collaborating with you more closely on GitHub. Thank you for your contribution to Gradle! |
Comment by Benjamin Muschko [ 10/Feb/17 ] |
Thanks again for reporting this issue. We haven't heard back from you after our inquiry from November 15th. We are closing this issue now. Please create an issue on GitHub if you still feel passionate about getting it resolved. |