Skip to content

Commit 99df09b

Browse files
Gradle: configure and register tasks lazily to improve build time.
1 parent 7ae3032 commit 99df09b

File tree

7 files changed

+23
-19
lines changed

7 files changed

+23
-19
lines changed

objectbox-java-api/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@ plugins {
55

66
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
77
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
8-
tasks.withType(JavaCompile) {
8+
tasks.withType(JavaCompile).configureEach {
99
options.release.set(8)
1010
}
1111

12-
task javadocJar(type: Jar, dependsOn: javadoc) {
12+
tasks.register('javadocJar', Jar) {
13+
dependsOn javadoc
1314
archiveClassifier.set('javadoc')
1415
from 'build/docs/javadoc'
1516
}
1617

17-
task sourcesJar(type: Jar) {
18+
tasks.register('sourcesJar', Jar) {
1819
from sourceSets.main.allSource
1920
archiveClassifier.set('sources')
2021
}

objectbox-java/build.gradle

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66

77
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
88
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
9-
tasks.withType(JavaCompile) {
9+
tasks.withType(JavaCompile).configureEach {
1010
options.release.set(8)
1111
}
1212

@@ -49,7 +49,7 @@ javadoc {
4949
}
5050

5151
// Note: use packageJavadocForWeb to get as ZIP.
52-
task javadocForWeb(type: Javadoc) {
52+
tasks.register('javadocForWeb', Javadoc) {
5353
group = 'documentation'
5454
description = 'Builds Javadoc incl. objectbox-java-api classes with web tweaks.'
5555

@@ -113,7 +113,8 @@ task javadocForWeb(type: Javadoc) {
113113
}
114114
}
115115

116-
task packageJavadocForWeb(type: Zip, dependsOn: javadocForWeb) {
116+
tasks.register('packageJavadocForWeb', Zip) {
117+
dependsOn javadocForWeb
117118
group = 'documentation'
118119
description = 'Packages Javadoc incl. objectbox-java-api classes with web tweaks as ZIP.'
119120

@@ -127,12 +128,13 @@ task packageJavadocForWeb(type: Zip, dependsOn: javadocForWeb) {
127128
}
128129
}
129130

130-
task javadocJar(type: Jar, dependsOn: javadoc) {
131+
tasks.register('javadocJar', Jar) {
132+
dependsOn javadoc
131133
archiveClassifier.set('javadoc')
132134
from 'build/docs/javadoc'
133135
}
134136

135-
task sourcesJar(type: Jar) {
137+
tasks.register('sourcesJar', Jar) {
136138
from sourceSets.main.allSource
137139
archiveClassifier.set('sources')
138140
}

objectbox-kotlin/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ plugins {
1010

1111
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
1212
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
13-
tasks.withType(JavaCompile) {
13+
tasks.withType(JavaCompile).configureEach {
1414
options.release.set(8)
1515
}
1616

@@ -38,14 +38,14 @@ tasks.named("dokkaHtml") {
3838
}
3939
}
4040

41-
task javadocJar(type: Jar) {
41+
tasks.register('javadocJar', Jar) {
4242
dependsOn tasks.named("dokkaHtml")
4343
group = 'build'
4444
archiveClassifier.set('javadoc')
4545
from "$javadocDir"
4646
}
4747

48-
task sourcesJar(type: Jar) {
48+
tasks.register('sourcesJar', Jar) {
4949
group = 'build'
5050
archiveClassifier.set('sources')
5151
from sourceSets.main.allSource

objectbox-rxjava/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55

66
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
77
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
8-
tasks.withType(JavaCompile) {
8+
tasks.withType(JavaCompile).configureEach {
99
options.release.set(8)
1010
}
1111

@@ -17,12 +17,13 @@ dependencies {
1717
testImplementation "org.mockito:mockito-core:$mockitoVersion"
1818
}
1919

20-
task javadocJar(type: Jar, dependsOn: javadoc) {
20+
tasks.register('javadocJar', Jar) {
21+
dependsOn javadoc
2122
archiveClassifier.set('javadoc')
2223
from 'build/docs/javadoc'
2324
}
2425

25-
task sourcesJar(type: Jar) {
26+
tasks.register('sourcesJar', Jar) {
2627
archiveClassifier.set('sources')
2728
from sourceSets.main.allSource
2829
}

objectbox-rxjava3/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ plugins {
1111

1212
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
1313
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
14-
tasks.withType(JavaCompile) {
14+
tasks.withType(JavaCompile).configureEach {
1515
options.release.set(8)
1616
}
1717

@@ -49,14 +49,14 @@ dependencies {
4949
testImplementation "org.mockito:mockito-core:$mockitoVersion"
5050
}
5151

52-
task javadocJar(type: Jar) {
52+
tasks.register('javadocJar', Jar) {
5353
dependsOn tasks.named("dokkaHtml")
5454
group = 'build'
5555
archiveClassifier.set('javadoc')
5656
from "$javadocDir"
5757
}
5858

59-
task sourcesJar(type: Jar) {
59+
tasks.register('sourcesJar', Jar) {
6060
group = 'build'
6161
archiveClassifier.set('sources')
6262
from sourceSets.main.allSource

tests/objectbox-java-test/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apply plugin: 'java-library'
22
apply plugin: 'kotlin'
33

4-
tasks.withType(JavaCompile) {
4+
tasks.withType(JavaCompile).configureEach {
55
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
66
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
77
options.release.set(8)

tests/test-proguard/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'java-library'
22

33
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
44
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
5-
tasks.withType(JavaCompile) {
5+
tasks.withType(JavaCompile).configureEach {
66
options.release.set(8)
77
}
88

0 commit comments

Comments
 (0)