From 7b2804a9c3d07a3a3b479b6b94f1cd3b49ebbf10 Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 12:21:14 +0200 Subject: [PATCH 1/8] Introduce custom plugin to list dependencies --- buildSrc/build.gradle | 9 +++++++ .../src/main/groovy/DependenciesPlugin.groovy | 12 +++++++++ buildSrc/src/main/groovy/GradlePlugins.groovy | 5 ++++ buildSrc/src/main/groovy/Libraries.groovy | 27 +++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 buildSrc/build.gradle create mode 100644 buildSrc/src/main/groovy/DependenciesPlugin.groovy create mode 100644 buildSrc/src/main/groovy/GradlePlugins.groovy create mode 100644 buildSrc/src/main/groovy/Libraries.groovy diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 0000000..a2ef3bf --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,9 @@ +repositories { + jcenter() +} + +apply plugin: 'groovy' + +dependencies { + compile gradleApi() +} diff --git a/buildSrc/src/main/groovy/DependenciesPlugin.groovy b/buildSrc/src/main/groovy/DependenciesPlugin.groovy new file mode 100644 index 0000000..9131414 --- /dev/null +++ b/buildSrc/src/main/groovy/DependenciesPlugin.groovy @@ -0,0 +1,12 @@ +import org.gradle.api.Plugin +import org.gradle.api.Project + +class DependenciesPlugin implements Plugin { + + @Override + void apply(Project project) { + project.extensions.create('gradlePlugins', GradlePlugins) + project.extensions.create('libraries', Libraries, project) + } + +} diff --git a/buildSrc/src/main/groovy/GradlePlugins.groovy b/buildSrc/src/main/groovy/GradlePlugins.groovy new file mode 100644 index 0000000..0703b98 --- /dev/null +++ b/buildSrc/src/main/groovy/GradlePlugins.groovy @@ -0,0 +1,5 @@ +public class GradlePlugins { + public final String bintrayRelease = 'com.novoda:bintray-release:0.4.0' + public final String buildProperties = 'com.novoda:gradle-build-properties-plugin:0.2' + public final String gradleGit = 'org.ajoberstar:gradle-git:1.6.0' +} diff --git a/buildSrc/src/main/groovy/Libraries.groovy b/buildSrc/src/main/groovy/Libraries.groovy new file mode 100644 index 0000000..a7b43e1 --- /dev/null +++ b/buildSrc/src/main/groovy/Libraries.groovy @@ -0,0 +1,27 @@ +import org.gradle.api.Project +import org.gradle.api.artifacts.Dependency + +public class Libraries { + private final Project project + + Libraries(Project project) { + this.project = project + } + + public final String junit = 'junit:junit:4.12' + public final String truth = 'com.google.truth:truth:0.30' + public final String guava = 'com.google.guava:guava:19.0' + public final Findbugs findbugs = new Findbugs() + + public Dependency getGradleApi() { + project.dependencies.gradleApi() + } + + public Dependency getGradleTestKit() { + project.dependencies.gradleTestKit() + } + + private static class Findbugs { + public final String annotations = 'com.google.code.findbugs:jsr305:3.0.0' + } +} From 945843c9572f88d84dbd1fb82162c700f3ce425a Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 12:21:41 +0200 Subject: [PATCH 2/8] Use DependenciesPlugin into project --- build.gradle | 8 +++++--- plugin/build.gradle | 12 ++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index f7ca01b..083cdce 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,14 @@ +apply plugin: DependenciesPlugin + subprojects { buildscript { repositories { jcenter() } dependencies { - classpath 'com.novoda:bintray-release:0.4.0' - classpath 'com.novoda:gradle-build-properties-plugin:0.2' - classpath 'org.ajoberstar:gradle-git:1.6.0' + classpath gradlePlugins.bintrayRelease + classpath gradlePlugins.buildProperties + classpath gradlePlugins.gradleGit } } diff --git a/plugin/build.gradle b/plugin/build.gradle index 4e38619..999082e 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -23,13 +23,13 @@ sourceSets { } dependencies { - compile gradleApi() + compile libraries.gradleApi - testCompile gradleTestKit() - testCompile 'junit:junit:4.12' - testCompile 'com.google.truth:truth:0.30' - testCompile 'com.google.guava:guava:19.0' - testCompile 'com.google.code.findbugs:jsr305:3.0.0' + testCompile libraries.gradleTestKit + testCompile libraries.junit + testCompile libraries.truth + testCompile libraries.guava + testCompile libraries.findbugs.annotations testRuntime files(pluginUnderTestMetadata) } From 85a8a7b5bbeea35acb246a38c9678e6dd8175ad8 Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 12:23:04 +0200 Subject: [PATCH 3/8] Reformat code --- buildSrc/src/main/groovy/DependenciesPlugin.groovy | 1 - buildSrc/src/main/groovy/Libraries.groovy | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/buildSrc/src/main/groovy/DependenciesPlugin.groovy b/buildSrc/src/main/groovy/DependenciesPlugin.groovy index 9131414..647b940 100644 --- a/buildSrc/src/main/groovy/DependenciesPlugin.groovy +++ b/buildSrc/src/main/groovy/DependenciesPlugin.groovy @@ -8,5 +8,4 @@ class DependenciesPlugin implements Plugin { project.extensions.create('gradlePlugins', GradlePlugins) project.extensions.create('libraries', Libraries, project) } - } diff --git a/buildSrc/src/main/groovy/Libraries.groovy b/buildSrc/src/main/groovy/Libraries.groovy index a7b43e1..8bd0f77 100644 --- a/buildSrc/src/main/groovy/Libraries.groovy +++ b/buildSrc/src/main/groovy/Libraries.groovy @@ -4,7 +4,7 @@ import org.gradle.api.artifacts.Dependency public class Libraries { private final Project project - Libraries(Project project) { + public Libraries(Project project) { this.project = project } From 83f645ecfc433841938b59fc8d1f020402fea8e8 Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 13:01:27 +0200 Subject: [PATCH 4/8] Move fields at the top of the class --- buildSrc/src/main/groovy/Libraries.groovy | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/groovy/Libraries.groovy b/buildSrc/src/main/groovy/Libraries.groovy index 8bd0f77..110533b 100644 --- a/buildSrc/src/main/groovy/Libraries.groovy +++ b/buildSrc/src/main/groovy/Libraries.groovy @@ -2,17 +2,17 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Dependency public class Libraries { + public final String junit = 'junit:junit:4.12' + public final String truth = 'com.google.truth:truth:0.30' + public final String guava = 'com.google.guava:guava:19.0' + public final Findbugs findbugs = new Findbugs() + private final Project project public Libraries(Project project) { this.project = project } - public final String junit = 'junit:junit:4.12' - public final String truth = 'com.google.truth:truth:0.30' - public final String guava = 'com.google.guava:guava:19.0' - public final Findbugs findbugs = new Findbugs() - public Dependency getGradleApi() { project.dependencies.gradleApi() } From fb5788a98d84af0831b9c2e29ccdfc0ee75a27bf Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 16:33:55 +0200 Subject: [PATCH 5/8] Move source and target compatibility to root buildscript --- build.gradle | 7 +++++++ plugin/build.gradle | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 083cdce..97f75be 100644 --- a/build.gradle +++ b/build.gradle @@ -15,4 +15,11 @@ subprojects { repositories { jcenter() } + + project.plugins.withType(JavaBasePlugin) { + project.with { + sourceCompatibility = JavaVersion.VERSION_1_7 + targetCompatibility = JavaVersion.VERSION_1_7 + } + } } diff --git a/plugin/build.gradle b/plugin/build.gradle index 999082e..bc491c4 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -2,9 +2,6 @@ apply plugin: 'groovy' apply plugin: 'java-gradle-plugin' apply from: rootProject.file('gradle/publish.gradle') -sourceCompatibility = JavaVersion.VERSION_1_7 -targetCompatibility = JavaVersion.VERSION_1_7 - sourceSets { test { java { From 4b028fe38a521916c69c7c6b35d08ef3b28c6805 Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 17:03:32 +0200 Subject: [PATCH 6/8] Remove unused modifiers from fields --- buildSrc/src/main/groovy/GradlePlugins.groovy | 6 +++--- buildSrc/src/main/groovy/Libraries.groovy | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/groovy/GradlePlugins.groovy b/buildSrc/src/main/groovy/GradlePlugins.groovy index 0703b98..d1992d7 100644 --- a/buildSrc/src/main/groovy/GradlePlugins.groovy +++ b/buildSrc/src/main/groovy/GradlePlugins.groovy @@ -1,5 +1,5 @@ public class GradlePlugins { - public final String bintrayRelease = 'com.novoda:bintray-release:0.4.0' - public final String buildProperties = 'com.novoda:gradle-build-properties-plugin:0.2' - public final String gradleGit = 'org.ajoberstar:gradle-git:1.6.0' + final bintrayRelease = 'com.novoda:bintray-release:0.4.0' + final buildProperties = 'com.novoda:gradle-build-properties-plugin:0.2' + final gradleGit = 'org.ajoberstar:gradle-git:1.6.0' } diff --git a/buildSrc/src/main/groovy/Libraries.groovy b/buildSrc/src/main/groovy/Libraries.groovy index 110533b..54c5b5b 100644 --- a/buildSrc/src/main/groovy/Libraries.groovy +++ b/buildSrc/src/main/groovy/Libraries.groovy @@ -2,10 +2,10 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Dependency public class Libraries { - public final String junit = 'junit:junit:4.12' - public final String truth = 'com.google.truth:truth:0.30' - public final String guava = 'com.google.guava:guava:19.0' - public final Findbugs findbugs = new Findbugs() + final junit = 'junit:junit:4.12' + final truth = 'com.google.truth:truth:0.30' + final guava = 'com.google.guava:guava:19.0' + final findbugs = new Findbugs() private final Project project @@ -13,15 +13,15 @@ public class Libraries { this.project = project } - public Dependency getGradleApi() { + def getGradleApi() { project.dependencies.gradleApi() } - public Dependency getGradleTestKit() { + def getGradleTestKit() { project.dependencies.gradleTestKit() } private static class Findbugs { - public final String annotations = 'com.google.code.findbugs:jsr305:3.0.0' + final annotations = 'com.google.code.findbugs:jsr305:3.0.0' } } From abba360fcfa66e4739c1d0033cf689374535b484 Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Fri, 14 Apr 2017 17:57:29 +0200 Subject: [PATCH 7/8] Remove unneeded public modifier from groovy classes --- buildSrc/src/main/groovy/GradlePlugins.groovy | 2 +- buildSrc/src/main/groovy/Libraries.groovy | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/groovy/GradlePlugins.groovy b/buildSrc/src/main/groovy/GradlePlugins.groovy index d1992d7..035adaa 100644 --- a/buildSrc/src/main/groovy/GradlePlugins.groovy +++ b/buildSrc/src/main/groovy/GradlePlugins.groovy @@ -1,4 +1,4 @@ -public class GradlePlugins { +class GradlePlugins { final bintrayRelease = 'com.novoda:bintray-release:0.4.0' final buildProperties = 'com.novoda:gradle-build-properties-plugin:0.2' final gradleGit = 'org.ajoberstar:gradle-git:1.6.0' diff --git a/buildSrc/src/main/groovy/Libraries.groovy b/buildSrc/src/main/groovy/Libraries.groovy index 54c5b5b..4b72ea1 100644 --- a/buildSrc/src/main/groovy/Libraries.groovy +++ b/buildSrc/src/main/groovy/Libraries.groovy @@ -1,7 +1,7 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Dependency -public class Libraries { +class Libraries { final junit = 'junit:junit:4.12' final truth = 'com.google.truth:truth:0.30' final guava = 'com.google.guava:guava:19.0' From 211cd451352ad55e49779d1d543d5080d48677e1 Mon Sep 17 00:00:00 2001 From: Antonio Bertucci Date: Mon, 24 Apr 2017 22:50:41 +0200 Subject: [PATCH 8/8] Remove unneded public modifier from constructor --- buildSrc/src/main/groovy/Libraries.groovy | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/buildSrc/src/main/groovy/Libraries.groovy b/buildSrc/src/main/groovy/Libraries.groovy index 4b72ea1..eaf5345 100644 --- a/buildSrc/src/main/groovy/Libraries.groovy +++ b/buildSrc/src/main/groovy/Libraries.groovy @@ -1,5 +1,4 @@ import org.gradle.api.Project -import org.gradle.api.artifacts.Dependency class Libraries { final junit = 'junit:junit:4.12' @@ -9,7 +8,7 @@ class Libraries { private final Project project - public Libraries(Project project) { + Libraries(Project project) { this.project = project }