Skip to content

Commit 5f38b19

Browse files
committed
2.0.2 - Maven Central + Inverted FTC Standard Field
1 parent 08db38a commit 5f38b19

File tree

5 files changed

+121
-74
lines changed

5 files changed

+121
-74
lines changed

build.gradle.kts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
plugins {
22
alias(libs.plugins.android.library) apply false
33
alias(libs.plugins.dokka) apply false
4+
alias(libs.plugins.deployer) apply false
5+
}
6+
7+
subprojects {
8+
group = "com.pedropathing"
9+
version = property("version") as String
10+
}
11+
12+
tasks.register("deployCentralPortal") {
13+
group = "publishing"
14+
description = "Publishes all subprojects to Maven Central."
15+
dependsOn(subprojects.map { it.tasks.named("deployCentralPortal") })
16+
}
17+
18+
tasks.register("deployNexusSnapshot") {
19+
group = "publishing"
20+
description = "Publishes all subprojects to Maven Central Snapshots."
21+
dependsOn(subprojects.map { it.tasks.named("deployNexusSnapshot") })
22+
}
23+
24+
tasks.register("deployLocal") {
25+
group = "publishing"
26+
description = "Publishes all subprojects to Maven Local."
27+
dependsOn(subprojects.map { it.tasks.named("deployLocal") })
428
}

core/build.gradle.kts

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,67 @@
11
plugins {
22
id("java-library")
3-
id("maven-publish")
3+
id("io.deepmedia.tools.deployer")
4+
id("org.jetbrains.dokka")
45
}
56

67
dependencies {
78
compileOnly(libs.annotations)
9+
dokkaPlugin(libs.dokka.java.plugin)
810
}
911

1012
java {
1113
sourceCompatibility = JavaVersion.VERSION_1_8
1214
targetCompatibility = JavaVersion.VERSION_1_8
15+
}
1316

14-
withSourcesJar()
15-
withJavadocJar()
17+
val dokkaJar = tasks.register<Jar>("dokkaJar") {
18+
dependsOn(tasks.named("dokkaGenerate"))
19+
from(dokka.basePublicationsDirectory.dir("html"))
20+
archiveClassifier = "html-docs"
1621
}
1722

18-
publishing {
19-
publications {
20-
register<MavenPublication>("release") {
21-
groupId = "com.pedropathing"
22-
artifactId = "core"
23-
version = property("version") as String
23+
deployer {
24+
projectInfo {
25+
name = "Pedro Pathing Core"
26+
description = "A path follower designed to revolutionize autonomous pathing in robotics"
27+
url = "https://github.com/Pedro-Pathing/PedroPathing"
28+
scm {
29+
fromGithub("Pedro-Pathing", "PedroPathing")
30+
}
31+
license("BSD 3-Clause License", "https://opensource.org/licenses/BSD-3-Clause")
32+
33+
developer("Baron Henderson", "baron@pedropathing.com")
34+
developer("Havish Sripada", "havish@pedropathing.com")
35+
}
36+
37+
signing {
38+
key = secret("MVN_GPG_KEY")
39+
password = secret("MVN_GPG_PASSWORD")
40+
}
2441

25-
from(components["java"])
42+
content {
43+
component {
44+
fromJava()
45+
javaSources()
46+
docs(dokkaJar)
2647
}
2748
}
2849

29-
repositories {
30-
maven {
31-
name = "publishing"
32-
url = uri("../../maven.pedropathing.com")
50+
centralPortalSpec {
51+
auth {
52+
user = secret("SONATYPE_USERNAME")
53+
password = secret("SONATYPE_PASSWORD")
3354
}
55+
allowMavenCentralSync = false
3456
}
35-
}
57+
58+
nexusSpec("snapshot") {
59+
repositoryUrl = "https://central.sonatype.com/repository/maven-snapshots/"
60+
auth {
61+
user = secret("SONATYPE_USERNAME")
62+
password = secret("SONATYPE_PASSWORD")
63+
}
64+
}
65+
66+
localSpec()
67+
}

ftc/build.gradle.kts

Lines changed: 43 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
1-
import org.gradle.api.tasks.javadoc.Javadoc
2-
import org.gradle.jvm.tasks.Jar
3-
import org.gradle.external.javadoc.JavadocMemberLevel
4-
51
plugins {
62
id("com.android.library")
7-
id("maven-publish")
83
id("org.jetbrains.dokka")
4+
id("io.deepmedia.tools.deployer")
95
}
106

117
android {
@@ -20,13 +16,6 @@ android {
2016
publishing {
2117
singleVariant("release") {
2218
withSourcesJar()
23-
withJavadocJar()
24-
}
25-
}
26-
27-
sourceSets {
28-
getByName("main") {
29-
java.srcDirs("src/main/kotlin")
3019
}
3120
}
3221

@@ -35,61 +24,58 @@ android {
3524
}
3625
}
3726

38-
android.libraryVariants.configureEach {
39-
val newName = "generate${name.replaceFirstChar { it.uppercase() }}Javadoc"
40-
val newJavadocTask = tasks.register<Javadoc>(newName) {
41-
group = "Documentation"
42-
description = "Generates Javadoc for $name"
43-
source = javaCompileProvider.get().source
44-
val androidJar =
45-
"${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
46-
classpath = files(getCompileClasspath(null)) + files(androidJar)
47-
with(options as StandardJavadocDocletOptions) {
48-
memberLevel = JavadocMemberLevel.PROTECTED
49-
links("https://developer.android.com/reference")
50-
encoding = "UTF-8"
51-
}
52-
}
53-
54-
if (name == "release") {
55-
tasks.named<Jar>("javadocJar") {
56-
dependsOn(newJavadocTask)
57-
from(newJavadocTask.map { it.destinationDir!! })
58-
}
59-
}
27+
dependencies {
28+
compileOnly(libs.bundles.ftc)
29+
api(project(":core"))
30+
dokkaPlugin(libs.dokka.java.plugin)
6031
}
6132

62-
tasks.register<Jar>("javadocJar") {
63-
archiveClassifier = "javadoc"
33+
val dokkaJar = tasks.register<Jar>("dokkaJar") {
34+
dependsOn(tasks.named("dokkaGenerate"))
35+
from(dokka.basePublicationsDirectory.dir("html"))
36+
archiveClassifier = "html-docs"
6437
}
6538

66-
tasks.register<Jar>("sourcesJar") {
67-
from(android.sourceSets["main"].java.srcDirs)
68-
archiveClassifier = "sources"
69-
}
39+
deployer {
40+
projectInfo {
41+
name = "Pedro Pathing FTC"
42+
description = "A path follower designed to revolutionize autonomous pathing in robotics"
43+
url = "https://github.com/Pedro-Pathing/PedroPathing"
44+
scm {
45+
fromGithub("Pedro-Pathing", "PedroPathing")
46+
}
47+
license("BSD 3-Clause License", "https://opensource.org/licenses/BSD-3-Clause")
7048

71-
dependencies {
72-
compileOnly(libs.bundles.ftc)
73-
api(project(":core"))
74-
}
49+
developer("Baron Henderson", "baron@pedropathing.com")
50+
developer("Havish Sripada", "havish@pedropathing.com")
51+
}
52+
53+
signing {
54+
key = secret("MVN_GPG_KEY")
55+
password = secret("MVN_GPG_PASSWORD")
56+
}
7557

76-
publishing {
77-
publications {
78-
register<MavenPublication>("release") {
79-
groupId = "com.pedropathing"
80-
artifactId = "ftc"
81-
version = property("version") as String
58+
content {
59+
androidComponents("release") {
60+
docs(dokkaJar)
61+
}
62+
}
8263

83-
afterEvaluate {
84-
from(components["release"])
85-
}
64+
centralPortalSpec {
65+
auth {
66+
user = secret("SONATYPE_USERNAME")
67+
password = secret("SONATYPE_PASSWORD")
8668
}
69+
allowMavenCentralSync = false
8770
}
8871

89-
repositories {
90-
maven {
91-
name = "publishing"
92-
url = uri("../../maven.pedropathing.com")
72+
nexusSpec("snapshot") {
73+
repositoryUrl = "https://central.sonatype.com/repository/maven-snapshots/"
74+
auth {
75+
user = secret("SONATYPE_USERNAME")
76+
password = secret("SONATYPE_PASSWORD")
9377
}
9478
}
79+
80+
localSpec()
9581
}

gradle.properties

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
22
android.useAndroidX=true
33
android.nonTransitiveRClass=true
44

5-
version=2.0.1
5+
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
6+
org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true
7+
8+
version=2.0.2

gradle/libs.versions.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ ftc = "11.0.0"
55
ftc-robot-core = { group = "org.firstinspires.ftc", name = "RobotCore", version.ref = "ftc" }
66
ftc-hardware = { group = "org.firstinspires.ftc", name = "Hardware", version.ref = "ftc" }
77
annotations = { group = "org.jetbrains", name = "annotations", version = "23.0.0" }
8+
dokka-java-plugin = "org.jetbrains.dokka:kotlin-as-java-plugin:2.0.0"
89

910
[bundles]
1011
ftc = ["ftc-robot-core", "ftc-hardware"]
1112

1213
[plugins]
1314
android-library = { id = "com.android.library", version = "8.7.3" }
14-
dokka = { id = "org.jetbrains.dokka", version = "1.9.20" }
15+
deployer = { id = "io.deepmedia.tools.deployer", version = "0.18.0" }
16+
dokka = { id = "org.jetbrains.dokka", version = "2.0.0" }

0 commit comments

Comments
 (0)