build: fix task groups
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/051290e9 Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/051290e9 Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/051290e9 Branch: refs/heads/develop Commit: 051290e9d21e8a0ba00a6e57ba912efb29e9890c Parents: 496b8b1 Author: Paul Merlin <[email protected]> Authored: Sat Nov 19 14:02:55 2016 +0100 Committer: Paul Merlin <[email protected]> Committed: Sat Nov 19 14:02:55 2016 +0100 ---------------------------------------------------------------------- .../zest/gradle/CodeProjectsPlugin.groovy | 8 ++++ .../apache/zest/gradle/RootProjectPlugin.groovy | 22 ++++++----- .../org/apache/zest/gradle/TaskGroups.groovy | 20 ++++++++++ .../zest/gradle/dist/DistributionPlugin.groovy | 40 ++++++++++++-------- .../gradle/doc/AsciidocBuildInfoPlugin.groovy | 5 ++- .../gradle/release/ReleaseSpecPlugin.groovy | 8 +--- 6 files changed, 72 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/051290e9/buildSrc/src/main/groovy/org/apache/zest/gradle/CodeProjectsPlugin.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/CodeProjectsPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/CodeProjectsPlugin.groovy index ed2d941..8fb411a 100644 --- a/buildSrc/src/main/groovy/org/apache/zest/gradle/CodeProjectsPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/CodeProjectsPlugin.groovy @@ -28,6 +28,7 @@ import org.gradle.api.plugins.osgi.OsgiManifest import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.jvm.tasks.Jar import org.gradle.testing.jacoco.plugins.JacocoPluginExtension +import org.gradle.testing.jacoco.tasks.JacocoReport @CompileStatic class CodeProjectsPlugin implements Plugin<Project> @@ -72,15 +73,18 @@ class CodeProjectsPlugin implements Plugin<Project> { def javaConvention = project.convention.getPlugin( JavaPluginConvention ) def sourceJar = project.tasks.create( 'sourceJar', Jar ) { Jar task -> + task.description = 'Builds -sources.jar' task.classifier = 'sources' task.from javaConvention.sourceSets.getByName( 'main' ).allSource } def testSourceJar = project.tasks.create( 'testSourceJar', Jar ) { Jar task -> + task.description = 'Builds -testsources.jar' task.classifier = 'testsources' task.from javaConvention.sourceSets.getByName( 'test' ).allSource } def javadoc = project.tasks.getByName( 'javadoc' ) as Javadoc def javadocJar = project.tasks.create( 'javadocJar', Jar ) { Jar task -> + task.description = 'Builds -javadoc.jar' task.classifier = 'javadoc' task.from javadoc.destinationDir task.dependsOn javadoc @@ -98,6 +102,10 @@ class CodeProjectsPlugin implements Plugin<Project> project.plugins.apply 'jacoco' def jacoco = project.extensions.getByType( JacocoPluginExtension ) jacoco.toolVersion = '0.7.5.201505241946' + project.tasks.withType( JacocoReport ) { JacocoReport task -> + task.group = TaskGroups.VERIFICATION + task.description = 'Generates test coverage report.' + } } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/051290e9/buildSrc/src/main/groovy/org/apache/zest/gradle/RootProjectPlugin.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/RootProjectPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/RootProjectPlugin.groovy index b915cea..80b9a2f 100644 --- a/buildSrc/src/main/groovy/org/apache/zest/gradle/RootProjectPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/RootProjectPlugin.groovy @@ -43,12 +43,6 @@ class RootProjectPlugin implements Plugin<Project> static final String PROJECT_DESCRIPTION = 'Apache Zest⢠(Java Edition) is a framework for domain centric ' + 'application development, including evolved concepts from AOP, DI and DDD.' - static class TaskGroups - { - static final String HELPER_TASKS = 'Helper tasks' - static final String DOCUMENTATION = 'Documentation' - } - static class TaskNames { static final String GO_OFFLINE = 'goOffline' @@ -86,7 +80,8 @@ class RootProjectPlugin implements Plugin<Project> private static void applyHelperTasks( Project project ) { project.tasks.create( TaskNames.GO_OFFLINE ) { Task task -> - task.group = TaskGroups.HELPER_TASKS + task.group = TaskGroups.HELP + task.description = 'Resolves all dependencies configuration' task.doLast { def allConfigurations = project.allprojects.collect { Project each -> each.configurations @@ -95,6 +90,8 @@ class RootProjectPlugin implements Plugin<Project> } } def buildAll = project.tasks.create( TaskNames.BUILD_ALL ) + buildAll.group = TaskGroups.BUILD + buildAll.description = 'Builds all' buildAll.dependsOn 'javadocs', 'check', 'jar', project.subprojects.collect { p -> p.tasks.getByName( 'dependencyReport' ) }, project.subprojects.collect { p -> p.tasks.getByName( 'assemble' ) }, @@ -111,6 +108,8 @@ class RootProjectPlugin implements Plugin<Project> project.configurations.create( 'jacoco' ) project.dependencies.add( 'jacoco', 'org.jacoco:org.jacoco.ant:0.7.5.201505241946' ) def task = project.tasks.create( 'coverageReport', AggregatedJacocoReportTask ) { AggregatedJacocoReportTask task -> + task.group = TaskGroups.VERIFICATION + task.description = 'Generates global coverage report' // ZEST-175 task.enabled = JavaVersion.current() < JavaVersion.VERSION_1_9 task.dependsOn project.subprojects.collect( { Project p -> p.tasks.getByName( 'test' ) } ) @@ -121,6 +120,8 @@ class RootProjectPlugin implements Plugin<Project> private static void configureTestReport( Project project ) { project.tasks.create( TaskNames.GLOBAL_TEST_REPORT, TestReport ) { TestReport task -> + task.group = TaskGroups.VERIFICATION + task.description = 'Generates global test report' task.destinationDir = project.file( "$project.buildDir/reports/tests" ) task.reportOn project.subprojects.collect { it.tasks.getByName( 'test' ) } } @@ -135,7 +136,7 @@ class RootProjectPlugin implements Plugin<Project> def releaseSpec = project.extensions.getByType( ReleaseSpecExtension ) project.tasks.create( TaskNames.JAVADOCS, Javadoc ) { Javadoc task -> task.group = TaskGroups.DOCUMENTATION - task.description = 'Build the whole SDK public Javadoc' + task.description = 'Builds the whole SDK public Javadoc' task.dependsOn ReleaseSpecPlugin.TaskNames.RELEASE_APPROVED_PROJECTS def options = task.options as StandardJavadocDocletOptions options.docFilesSubDirs = true @@ -181,6 +182,8 @@ class RootProjectPlugin implements Plugin<Project> ] ) } project.tasks.create( TaskNames.ARCHIVE_JAVADOCS, Copy ) { Copy task -> + task.group = TaskGroups.DOCUMENTATION + task.description = 'Copy SDK public Javadoc to ../zest-web' task.dependsOn TaskNames.JAVADOCS task.from 'build/docs/javadoc/' if( project.version == '0' || project.version.toString().contains( "SNAPSHOT" ) ) @@ -197,6 +200,7 @@ class RootProjectPlugin implements Plugin<Project> private static void configureRat( Project project ) { def rat = project.tasks.getByName( 'rat' ) as RatTask + rat.group = TaskGroups.VERIFICATION rat.onlyIf { project.version != '0' } rat.excludes = [ '**/.DS_Store/**', '**/._*', @@ -242,7 +246,7 @@ class RootProjectPlugin implements Plugin<Project> { def release = project.tasks.create( 'release' ) release.description = 'Builds, tests and uploads the release artifacts' - release.group = 'Release' + release.group = TaskGroups.RELEASE release.doFirst { if( System.properties[ 'version' ] == null || System.properties[ 'version' ].toString().contains( 'SNAPSHOT' ) ) { http://git-wip-us.apache.org/repos/asf/zest-java/blob/051290e9/buildSrc/src/main/groovy/org/apache/zest/gradle/TaskGroups.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/TaskGroups.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/TaskGroups.groovy new file mode 100644 index 0000000..03ec348 --- /dev/null +++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/TaskGroups.groovy @@ -0,0 +1,20 @@ +package org.apache.zest.gradle + +import org.gradle.api.plugins.ApplicationPlugin +import org.gradle.api.plugins.BasePlugin +import org.gradle.api.plugins.HelpTasksPlugin +import org.gradle.api.plugins.JavaBasePlugin +import org.gradle.language.base.plugins.LifecycleBasePlugin + +class TaskGroups +{ + static final String HELP = HelpTasksPlugin.HELP_GROUP + static final String BUILD = LifecycleBasePlugin.BUILD_GROUP + static final String VERIFICATION = LifecycleBasePlugin.VERIFICATION_GROUP + static final String DOCUMENTATION = JavaBasePlugin.DOCUMENTATION_GROUP + static final String DISTRIBUTION = ApplicationPlugin.APPLICATION_GROUP + static final String DISTRIBUTION_VERIFICATION = 'distribution verification' + static final String RELEASE = 'release' + static final String RELEASE_VERIFICATION = 'release verification' + static final String UPLOAD = BasePlugin.UPLOAD_GROUP +} http://git-wip-us.apache.org/repos/asf/zest-java/blob/051290e9/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy index fc4e23d..930e68e 100644 --- a/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy @@ -22,6 +22,7 @@ import groovy.transform.TypeCheckingMode import org.apache.rat.gradle.RatTask import org.apache.tools.ant.filters.ReplaceTokens import org.apache.zest.gradle.RootProjectPlugin +import org.apache.zest.gradle.TaskGroups import org.apache.zest.gradle.dependencies.DependenciesPlugin import org.apache.zest.gradle.release.ReleaseSpecExtension import org.apache.zest.gradle.release.ReleaseSpecPlugin @@ -40,12 +41,6 @@ import org.gradle.api.tasks.bundling.Zip @CompileStatic class DistributionPlugin implements Plugin<Project> { - static class TaskGroups - { - static final String DISTRIBUTION = 'Distribution' - static final String DISTRIBUTION_VERIFICATION = 'Distribution verification' - } - static class TaskNames { static final String UNPACK_SOURCE_DIST = 'unpackSrcDist' @@ -113,6 +108,7 @@ class DistributionPlugin implements Plugin<Project> spec.into '.' } def srcDistFilteredFilesTask = project.tasks.create( 'srcDistFilteredFiles' ) + srcDistFilteredFilesTask.description = 'Apply release specification to source distribution build scripts' // Generates various files for the source distribution // - settings.gradle // - gradle.properties to set version ! @@ -161,11 +157,15 @@ class DistributionPlugin implements Plugin<Project> } def zipSources = project.tasks.create( 'zipSources', Zip ) { Zip task -> + task.group = TaskGroups.DISTRIBUTION + task.description = 'Assemble .zip source distribution' task.baseName = 'apache-zest-java' task.with srcDistCopySpec task.classifier = 'src' } def tarSources = project.tasks.create( 'tarSources', Tar ) { Tar task -> + task.group = TaskGroups.DISTRIBUTION + task.description = 'Assemble .tar.gz source distribution' task.baseName = 'apache-zest-java' task.with srcDistCopySpec task.compression = Compression.GZIP @@ -175,16 +175,16 @@ class DistributionPlugin implements Plugin<Project> project.artifacts.add( 'archives', tarSources ) project.tasks.create( TaskNames.UNPACK_SOURCE_DIST, Copy ) { Copy task -> - task.description = "Unpack the source distribution" task.group = TaskGroups.DISTRIBUTION + task.description = "Unpack source distribution" task.with srcDistCopySpec task.into 'build/unpacked-distributions/src' } def unpackedSrcDistDir = project.file( "build/unpacked-distributions/src/apache-zest-java-$project.version-src" ) project.tasks.create( TaskNames.CHECK_SOURCE_DIST, GradleBuild.class, { GradleBuild task -> - task.description = "Check the source distribution by running the 'check' and 'assemble' tasks inside" task.group = TaskGroups.DISTRIBUTION_VERIFICATION + task.description = "Check the source distribution by running the 'check' and 'assemble' tasks inside" task.dependsOn TaskNames.UNPACK_SOURCE_DIST task.buildFile = "$unpackedSrcDistDir/build.gradle" task.tasks = [ 'check', 'assemble' ] @@ -260,12 +260,16 @@ class DistributionPlugin implements Plugin<Project> } def zipBinaries = project.tasks.create( 'zipBinaries', Zip ) { Zip task -> + task.group = TaskGroups.DISTRIBUTION + task.description = 'Assemble .zip binary distribution' task.dependsOn project.tasks.getByName( RootProjectPlugin.TaskNames.BUILD_ALL ) task.baseName = 'apache-zest-java' task.classifier = 'bin' task.with binDistImage } def tarBinaries = project.tasks.create( 'tarBinaries', Tar ) { Tar task -> + task.group = TaskGroups.DISTRIBUTION + task.description = 'Assemble .tar.gz binary distribution' task.dependsOn project.tasks.getByName( RootProjectPlugin.TaskNames.BUILD_ALL ) task.baseName = 'apache-zest-java' task.classifier = 'bin' @@ -276,8 +280,8 @@ class DistributionPlugin implements Plugin<Project> project.artifacts.add( 'archives', tarBinaries ) project.tasks.create( TaskNames.UNPACK_BINARY_DIST, Copy ) { Copy task -> - task.description = "Unpack the binary distribution" task.group = TaskGroups.DISTRIBUTION + task.description = "Unpack binary distribution" task.with binDistImage task.into 'build/unpacked-distributions/bin' } @@ -300,9 +304,13 @@ class DistributionPlugin implements Plugin<Project> } def checkOfflineMaven = project.tasks.create( TaskNames.CHECK_MAVEN_OFFLINE_HELPERS, GoOfflineHelpersTasks.CheckMaven ) + checkOfflineMaven.group = TaskGroups.DISTRIBUTION_VERIFICATION + checkOfflineMaven.description = 'Check binary distribution Maven dependencies download helper' + checkOfflineMaven.dependsOn genOfflineMaven def checkOfflineGradle = project.tasks.create( TaskNames.CHECK_GRADLE_OFFLINE_HELPERS, GoOfflineHelpersTasks.CheckGradle ) - checkOfflineMaven.dependsOn genOfflineMaven + checkOfflineGradle.group = TaskGroups.DISTRIBUTION_VERIFICATION + checkOfflineGradle.description = 'Check binary distribution Gradle dependencies download helper' checkOfflineGradle.dependsOn genOfflineGradle [ checkOfflineMaven, checkOfflineGradle ].each { task -> task.group = TaskGroups.DISTRIBUTION_VERIFICATION @@ -314,9 +322,9 @@ class DistributionPlugin implements Plugin<Project> { def unpackedBinDistDir = project.file( "build/unpacked-distributions/bin/apache-zest-java-$project.version-bin" ) project.tasks.create( TaskNames.CHECK_BINARY_DIST_RAT, RatTask, { RatTask task -> - task.dependsOn TaskNames.UNPACK_BINARY_DIST - task.description = "Check the binary distribution using Apache RAT" task.group = TaskGroups.DISTRIBUTION_VERIFICATION + task.description = "Checks binary distribution using Apache RAT" + task.dependsOn TaskNames.UNPACK_BINARY_DIST task.inputDir = unpackedBinDistDir.absolutePath task.reportDir = project.file( 'build/reports/rat-bin-dist' ) task.excludes = [ @@ -334,6 +342,8 @@ class DistributionPlugin implements Plugin<Project> task.mustRunAfter TaskNames.CHECK_MAVEN_OFFLINE_HELPERS } project.tasks.create( TaskNames.CHECK_BINARY_DIST ) { Task task -> + task.group = TaskGroups.DISTRIBUTION_VERIFICATION + task.description = 'Checks binary distribution' task.dependsOn TaskNames.CHECK_BINARY_DIST_RAT task.dependsOn TaskNames.CHECK_MAVEN_OFFLINE_HELPERS task.dependsOn TaskNames.CHECK_GRADLE_OFFLINE_HELPERS @@ -360,15 +370,15 @@ class DistributionPlugin implements Plugin<Project> private static void configureHelperTasks( Project project ) { project.tasks.create( 'dist', Copy ) { Copy task -> - task.dependsOn 'install' - task.description = "Unpack the binary distribution" task.group = TaskGroups.DISTRIBUTION + task.description = "Assembles source and binary distributions" + task.dependsOn 'install' task.from project.tasks.getByName( 'unpackBinDist' ) task.into "$project.buildDir/dist" } project.tasks.create( 'checkDists' ) { Task task -> - task.description = "Check the source and binary distributions" task.group = TaskGroups.DISTRIBUTION_VERIFICATION + task.description = "Checks source and binary distributions" task.dependsOn TaskNames.CHECK_SOURCE_DIST, TaskNames.CHECK_BINARY_DIST } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/051290e9/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy index dad0f6d..324c196 100644 --- a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy @@ -18,6 +18,7 @@ package org.apache.zest.gradle.doc import groovy.transform.CompileStatic +import org.apache.zest.gradle.TaskGroups import org.gradle.api.Project import org.gradle.api.Plugin @@ -30,7 +31,9 @@ class AsciidocBuildInfoPlugin implements Plugin<Project> { def buildInfoDir = new File( project.buildDir, "docs/buildinfo" ); - def makeAsciidocBuildInfoTask = project.task( TASK_NAME ) + def makeAsciidocBuildInfoTask = project.tasks.create( TASK_NAME ) + makeAsciidocBuildInfoTask.group = TaskGroups.DOCUMENTATION + makeAsciidocBuildInfoTask.description = 'Generates asciidoc artifact snippet' makeAsciidocBuildInfoTask.doLast { buildInfoDir.mkdirs() http://git-wip-us.apache.org/repos/asf/zest-java/blob/051290e9/buildSrc/src/main/groovy/org/apache/zest/gradle/release/ReleaseSpecPlugin.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/release/ReleaseSpecPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/release/ReleaseSpecPlugin.groovy index ac46eed..55eac67 100644 --- a/buildSrc/src/main/groovy/org/apache/zest/gradle/release/ReleaseSpecPlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/zest/gradle/release/ReleaseSpecPlugin.groovy @@ -18,6 +18,7 @@ package org.apache.zest.gradle.release import groovy.transform.CompileStatic +import org.apache.zest.gradle.TaskGroups import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.Task @@ -25,12 +26,6 @@ import org.gradle.api.Task @CompileStatic class ReleaseSpecPlugin implements Plugin<Project> { - static class TaskGroups - { - static final String RELEASE = 'Release' - static final String RELEASE_VERIFICATION = 'Release verification' - } - static class TaskNames { static final String RELEASE_APPROVED_PROJECTS = 'releaseSpecApprovedProjects' @@ -52,6 +47,7 @@ class ReleaseSpecPlugin implements Plugin<Project> project.extensions.create( ReleaseSpecExtension.NAME, ReleaseSpecExtension, project.rootProject ) project.tasks.create( TaskNames.RELEASE_APPROVED_PROJECTS, ReleaseApprovedProjectsTask ) { Task task -> task.group = TaskGroups.RELEASE + task.description = 'Apply release specification to projects in the build' } project.tasks.create( TaskNames.CHECK_RELEASE_SPEC, CheckReleaseSpecTask ) { Task task -> task.group = TaskGroups.RELEASE_VERIFICATION
