Skip to content

Commit 69b16de

Browse files
Gradle KTS: convert objectbox-rxjava and -jxjava3 build scripts
1 parent 15d526b commit 69b16de

File tree

2 files changed

+71
-60
lines changed

2 files changed

+71
-60
lines changed

objectbox-rxjava/build.gradle.kts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,43 @@ 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).configureEach {
8+
tasks.withType<JavaCompile> {
99
options.release.set(8)
1010
}
1111

12+
val junitVersion: String by rootProject.extra
13+
val mockitoVersion: String by rootProject.extra
14+
1215
dependencies {
13-
api project(':objectbox-java')
14-
api 'io.reactivex.rxjava2:rxjava:2.2.21'
16+
api(project(":objectbox-java"))
17+
api("io.reactivex.rxjava2:rxjava:2.2.21")
1518

16-
testImplementation "junit:junit:$junitVersion"
17-
testImplementation "org.mockito:mockito-core:$mockitoVersion"
19+
testImplementation("junit:junit:$junitVersion")
20+
testImplementation("org.mockito:mockito-core:$mockitoVersion")
1821
}
1922

20-
tasks.register('javadocJar', Jar) {
21-
dependsOn javadoc
22-
archiveClassifier.set('javadoc')
23-
from 'build/docs/javadoc'
23+
val javadocJar by tasks.registering(Jar::class) {
24+
dependsOn(tasks.named("javadoc"))
25+
archiveClassifier.set("javadoc")
26+
from("build/docs/javadoc")
2427
}
2528

26-
tasks.register('sourcesJar', Jar) {
27-
archiveClassifier.set('sources')
28-
from sourceSets.main.allSource
29+
val sourcesJar by tasks.registering(Jar::class) {
30+
archiveClassifier.set("sources")
31+
from(sourceSets.main.get().allSource)
2932
}
3033

3134
// Set project-specific properties.
32-
publishing.publications {
33-
mavenJava(MavenPublication) {
34-
from components.java
35-
artifact sourcesJar
36-
artifact javadocJar
37-
pom {
38-
name = 'ObjectBox RxJava API'
39-
description = 'RxJava extension for ObjectBox'
35+
publishing {
36+
publications {
37+
getByName<MavenPublication>("mavenJava") {
38+
from(components["java"])
39+
artifact(sourcesJar)
40+
artifact(javadocJar)
41+
pom {
42+
name.set("ObjectBox RxJava API")
43+
description.set("RxJava extension for ObjectBox")
44+
}
4045
}
4146
}
4247
}

objectbox-rxjava3/build.gradle.kts

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,82 @@
1-
buildscript {
2-
ext.javadocDir = file("$buildDir/docs/javadoc")
3-
}
1+
import org.jetbrains.dokka.gradle.DokkaTask
2+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
3+
import java.net.URL
4+
5+
val javadocDir = file("$buildDir/docs/javadoc")
46

57
plugins {
68
id("java-library")
7-
id("kotlin")
9+
kotlin("jvm")
810
id("org.jetbrains.dokka")
911
id("objectbox-publish")
1012
}
1113

1214
// Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used.
1315
// https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation
14-
tasks.withType(JavaCompile).configureEach {
16+
tasks.withType<JavaCompile> {
1517
options.release.set(8)
1618
}
1719

1820
// Produce Java 8 byte code, would default to Java 6.
19-
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
21+
tasks.withType<KotlinCompile> {
2022
kotlinOptions {
2123
jvmTarget = "1.8"
2224
}
2325
}
2426

25-
tasks.named("dokkaHtml") {
27+
tasks.named<DokkaTask>("dokkaHtml") {
2628
outputDirectory.set(javadocDir)
2729

28-
dokkaSourceSets {
29-
configureEach {
30-
// Fix "Can't find node by signature": have to manually point to dependencies.
31-
// https://github.com/Kotlin/dokka/wiki/faq#dokka-complains-about-cant-find-node-by-signature-
32-
externalDocumentationLink {
33-
// Point to web javadoc for objectbox-java packages.
34-
url.set(new URL("https://objectbox.io/docfiles/java/current/"))
35-
// Note: Using JDK 9+ package-list is now called element-list.
36-
packageListUrl.set(new URL("https://objectbox.io/docfiles/java/current/element-list"))
37-
}
30+
dokkaSourceSets.configureEach {
31+
// Fix "Can't find node by signature": have to manually point to dependencies.
32+
// https://github.com/Kotlin/dokka/wiki/faq#dokka-complains-about-cant-find-node-by-signature-
33+
externalDocumentationLink {
34+
// Point to web javadoc for objectbox-java packages.
35+
url.set(URL("https://objectbox.io/docfiles/java/current/"))
36+
// Note: Using JDK 9+ package-list is now called element-list.
37+
packageListUrl.set(URL("https://objectbox.io/docfiles/java/current/element-list"))
3838
}
3939
}
4040
}
4141

42+
val kotlinVersion: String by rootProject.extra
43+
val junitVersion: String by rootProject.extra
44+
val mockitoVersion: String by rootProject.extra
45+
4246
dependencies {
43-
api project(':objectbox-java')
44-
api 'io.reactivex.rxjava3:rxjava:3.0.11'
45-
compileOnly "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
47+
api(project(":objectbox-java"))
48+
api("io.reactivex.rxjava3:rxjava:3.0.11")
49+
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
4650

47-
testImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
48-
testImplementation "junit:junit:$junitVersion"
49-
testImplementation "org.mockito:mockito-core:$mockitoVersion"
51+
testImplementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
52+
testImplementation("junit:junit:$junitVersion")
53+
testImplementation("org.mockito:mockito-core:$mockitoVersion")
5054
}
5155

52-
tasks.register('javadocJar', Jar) {
53-
dependsOn tasks.named("dokkaHtml")
54-
group = 'build'
55-
archiveClassifier.set('javadoc')
56-
from "$javadocDir"
56+
val javadocJar by tasks.registering(Jar::class) {
57+
dependsOn(tasks.named("dokkaHtml"))
58+
group = "build"
59+
archiveClassifier.set("javadoc")
60+
from(javadocDir)
5761
}
5862

59-
tasks.register('sourcesJar', Jar) {
60-
group = 'build'
61-
archiveClassifier.set('sources')
62-
from sourceSets.main.allSource
63+
val sourcesJar by tasks.registering(Jar::class) {
64+
group = "build"
65+
archiveClassifier.set("sources")
66+
from(sourceSets.main.get().allSource)
6367
}
6468

6569
// Set project-specific properties.
66-
publishing.publications {
67-
mavenJava(MavenPublication) {
68-
from components.java
69-
artifact sourcesJar
70-
artifact javadocJar
71-
pom {
72-
name = 'ObjectBox RxJava 3 API'
73-
description = 'RxJava 3 extensions for ObjectBox'
70+
publishing {
71+
publications {
72+
getByName<MavenPublication>("mavenJava") {
73+
from(components["java"])
74+
artifact(sourcesJar)
75+
artifact(javadocJar)
76+
pom {
77+
name.set("ObjectBox RxJava 3 API")
78+
description.set("RxJava 3 extensions for ObjectBox")
79+
}
7480
}
7581
}
7682
}

0 commit comments

Comments
 (0)