|
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") |
4 | 6 |
|
5 | 7 | plugins { |
6 | 8 | id("java-library") |
7 | | - id("kotlin") |
| 9 | + kotlin("jvm") |
8 | 10 | id("org.jetbrains.dokka") |
9 | 11 | id("objectbox-publish") |
10 | 12 | } |
11 | 13 |
|
12 | 14 | // Note: use release flag instead of sourceCompatibility and targetCompatibility to ensure only JDK 8 API is used. |
13 | 15 | // https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_cross_compilation |
14 | | -tasks.withType(JavaCompile).configureEach { |
| 16 | +tasks.withType<JavaCompile> { |
15 | 17 | options.release.set(8) |
16 | 18 | } |
17 | 19 |
|
18 | 20 | // Produce Java 8 byte code, would default to Java 6. |
19 | | -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { |
| 21 | +tasks.withType<KotlinCompile> { |
20 | 22 | kotlinOptions { |
21 | 23 | jvmTarget = "1.8" |
22 | 24 | } |
23 | 25 | } |
24 | 26 |
|
25 | | -tasks.named("dokkaHtml") { |
| 27 | +tasks.named<DokkaTask>("dokkaHtml") { |
26 | 28 | outputDirectory.set(javadocDir) |
27 | 29 |
|
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")) |
38 | 38 | } |
39 | 39 | } |
40 | 40 | } |
41 | 41 |
|
| 42 | +val kotlinVersion: String by rootProject.extra |
| 43 | +val junitVersion: String by rootProject.extra |
| 44 | +val mockitoVersion: String by rootProject.extra |
| 45 | + |
42 | 46 | 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") |
46 | 50 |
|
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") |
50 | 54 | } |
51 | 55 |
|
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) |
57 | 61 | } |
58 | 62 |
|
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) |
63 | 67 | } |
64 | 68 |
|
65 | 69 | // 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 | + } |
74 | 80 | } |
75 | 81 | } |
76 | 82 | } |
0 commit comments