Skip to content

Commit

Permalink
build!: fix dependencies (#289)
Browse files Browse the repository at this point in the history
Fix Gradle dependency problem (@joshuasing PEBKAC) introduced in
21ec9eb
`compileOnlyApi` results in the Maven scope `compile` which causes the
dependency to be included by the Maven shade plugin.

Use `compileOnly` for platform dependencies (e.g. Bukkit, BungeeCord).
Use `api` for dependencies that should be transitvely exported to
consumers (e.g. chameleon-api, adventure).

More information:
https://docs.gradle.org/current/userguide/java_library_plugin.html
  • Loading branch information
joshuasing authored Sep 19, 2023
1 parent b217888 commit 6f00201
Show file tree
Hide file tree
Showing 10 changed files with 42 additions and 25 deletions.
2 changes: 1 addition & 1 deletion annotations/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ dependencies {
exclude(group = "org.apache", module = "velocity")
}
implementation(libs.gson)
}
}
4 changes: 3 additions & 1 deletion api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ dependencies {
api(libs.adventure.textSerializer.legacy)
api(libs.adventure.textSerializer.gson)
api(libs.adventure.platform.api)
compileOnlyApi(libs.annotations)

// Logging libraries for logger wrappers
compileOnly(libs.slf4j)
compileOnly(libs.log4j) // Scary...
compileOnlyApi(libs.annotations)
}
22 changes: 21 additions & 1 deletion example/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,34 @@ repositories {
}

dependencies {
// Chameleon API
implementation(projects.chameleonApi) // dev.hypera:chameleon-api

// Bukkit support
implementation(projects.chameleonPlatformBukkit) // dev.hypera:chameleon-platform-bukkit
compileOnly(libs.platform.bukkit) // org.spigotmc:spigot-api

// BungeeCord support
implementation(projects.chameleonPlatformBungeecord) // dev.hypera:chameleon-platform-bungeecord
compileOnly(libs.platform.bungeecord) // net.md-5:bungeecord-api

// Folia support
implementation(projects.chameleonPlatformFolia) // dev.hypera:chameleon-platform-folia
compileOnly(libs.platform.folia) // dev.folia:folia-api

// Nukkit support
implementation(projects.chameleonPlatformNukkit) // dev.hypera:chameleon-platform-nukkit
implementation(projects.chameleonPlatformVelocity) // dev.hypera:chameleon-platform-velocity
compileOnly(libs.platform.nukkit) // cn.nukkit:nukkit

// Sponge support
implementation(projects.chameleonPlatformSponge) // dev.hypera:chameleon-platform-sponge
compileOnly(libs.platform.sponge) // org.spongepowered:spongeapi

// Velocity support
implementation(projects.chameleonPlatformVelocity) // dev.hypera:chameleon-platform-velocity
compileOnly(libs.platform.velocity) // com.velocitypowered:velocity-api

// Annotation-based platform "main class" and manifest generation
compileOnly(projects.chameleonAnnotations) // dev.hypera:chameleon-annotations
annotationProcessor(projects.chameleonAnnotations) // dev.hypera:chameleon-annotations
}
Expand Down
2 changes: 1 addition & 1 deletion platform-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ plugins {
}

dependencies {
compileOnlyApi(projects.chameleonApi)
api(projects.chameleonApi)
}
7 changes: 3 additions & 4 deletions platform-bukkit/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ repositories {
}

dependencies {
compileOnlyApi(projects.chameleonApi)
compileOnlyApi(projects.chameleonPlatformApi)
compileOnlyApi(libs.platform.bukkit)
api(projects.chameleonPlatformApi)
compileOnly(libs.platform.bukkit)
implementation(libs.adventure.platform.bukkit)
}
}
7 changes: 3 additions & 4 deletions platform-bungeecord/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ repositories {
}

dependencies {
compileOnlyApi(projects.chameleonApi)
compileOnlyApi(projects.chameleonPlatformApi)
compileOnlyApi(libs.platform.bungeecord)
api(projects.chameleonPlatformApi)
compileOnly(libs.platform.bungeecord)
implementation(libs.adventure.platform.bungeecord)
}
}
2 changes: 1 addition & 1 deletion platform-folia/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ dependencies {
api(projects.chameleonPlatformBukkit) {
exclude("org.spigotmc", "spigot-api")
}
compileOnlyApi(libs.platform.folia)
compileOnly(libs.platform.folia)
}
7 changes: 3 additions & 4 deletions platform-nukkit/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ repositories {
}

dependencies {
compileOnlyApi(projects.chameleonApi)
compileOnlyApi(projects.chameleonPlatformApi)
compileOnlyApi(libs.platform.nukkit)
}
api(projects.chameleonPlatformApi)
compileOnly(libs.platform.nukkit)
}
7 changes: 3 additions & 4 deletions platform-sponge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,8 @@ repositories {
}

dependencies {
compileOnlyApi(projects.chameleonApi)
compileOnlyApi(projects.chameleonPlatformApi)
compileOnlyApi(libs.platform.sponge) {
api(projects.chameleonPlatformApi)
compileOnly(libs.platform.sponge) {
exclude(module = "configurate-*")
}
}
}
7 changes: 3 additions & 4 deletions platform-velocity/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ repositories {
}

dependencies {
compileOnlyApi(projects.chameleonApi)
compileOnlyApi(projects.chameleonPlatformApi)
compileOnlyApi(libs.platform.velocity)
}
api(projects.chameleonPlatformApi)
compileOnly(libs.platform.velocity)
}

0 comments on commit 6f00201

Please sign in to comment.