Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 29 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@ plugins {
id "com.diffplug.spotless" version "5.11.0" apply false
// generation of project-wide javadocs
id "io.freefair.aggregate-javadoc" version "5.3.0"

// pom packaging for root
id "java-platform"
}

allprojects {
group = "com.dumbdogdiner"
version = "3.0.0"
version = "3.0.1"

apply plugin: "java"
// java plugin is applied in subprojects
apply plugin: "jacoco"

// Apply here instead of in plugins {} above to solve
Expand Down Expand Up @@ -69,6 +72,9 @@ allprojects {
subprojects {
apply plugin: "io.freefair.lombok"
apply plugin: "com.diffplug.spotless"

// apply the java plugin here since root uses java-platform
apply plugin: "java"

// Spotless Options
spotless {
Expand Down Expand Up @@ -182,11 +188,20 @@ subprojects {
}
}

// Root build: create uber jar from subproject outputs
jar { from subprojects.sourceSets.main.output }
// Root build: include dependencies (see below)
javaPlatform.allowDependencies()

// Root build: Add api dependency to all projects we wanna include
dependencies {
project.subprojects.each {
if (it.name != "serverversion") api (it) {
exclude group: "com.dumbdogdiner", module: "serverversion"
}
}
}

// Root build: create uber sources from subproject sources
task rootSources(type: Jar, dependsOn: classes) {
task rootSources(type: Jar, dependsOn: subprojects.classes) {
archiveClassifier.set("sources")
// Use source code from all subprojects for sources.
// TODO: Use certain subprojects only to allow for multiple jar outputs
Expand Down Expand Up @@ -230,16 +245,20 @@ tasks.build.finalizedBy copySubprojectJars
tasks.build.dependsOn rootSources

// Root build: generate project wide test, coverage and javadoc results
tasks.test.finalizedBy rootTestReport, rootJacocoMergedReport, javadoc
tasks.build.finalizedBy rootTestReport, rootJacocoMergedReport, aggregateJavadoc

// Root build: also run aggregateJavadoc after javadoc to generate project-wide javadocs
tasks.javadoc.finalizedBy aggregateJavadoc
// Subproject Javadoc: Finalize :javadoc meta-task with :aggregateJavadoc
task javadoc { finalizedBy aggregateJavadoc }

// Javadoc fixes (pt. 2, see above entries)
aggregateJavadoc.options.encoding = "UTF-8"

// Root Javadoc: Set title and output dir
aggregateJavadoc.title = "StickyAPI $project.version API (Aggregated)"
aggregateJavadoc.destinationDir = file("$buildDir/docs/javadoc")

task browseJavadoc {
dependsOn javadoc
dependsOn aggregateJavadoc
description "Browse javadoc"
group = "documentation"
doLast {
Expand All @@ -253,7 +272,7 @@ publishing {
// Uber-jar publication
publications {
gprRoot(MavenPublication) {
from(components.java)
from(components.javaPlatform)
artifact rootSources // Publish the output of the (root) sources task
}
}
Expand Down