Skip to content

Commit b5d46db

Browse files
committed
Automatically configure publishing
1 parent 1ddde1a commit b5d46db

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/main/kotlin/LavalinkExtension.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import org.gradle.api.provider.Property
44
import org.gradle.api.Project
55
import org.gradle.api.provider.Provider
66
import org.gradle.api.provider.ProviderConvertible
7+
import java.nio.charset.Charset
8+
import java.nio.charset.StandardCharsets
79

810
/**
911
* Lavalink specific configuration options.
@@ -40,6 +42,11 @@ interface LavalinkExtension {
4042
*/
4143
val path: Property<String>
4244

45+
/**
46+
* Whether to configure publishing automatically or nor.
47+
*/
48+
val configurePublishing: Property<Boolean>
49+
4350
/**
4451
* Creates a Lavalink version for [gitHash].
4552
*/

src/main/kotlin/LavalinkGradlePlugin.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,25 @@ import org.gradle.api.Plugin
55
import org.gradle.api.Project
66
import org.gradle.api.artifacts.Dependency
77
import org.gradle.api.provider.Provider
8+
import org.gradle.api.publish.PublishingExtension
9+
import org.gradle.api.publish.maven.MavenPublication
810
import org.gradle.api.tasks.Copy
911
import org.gradle.api.tasks.SourceSetContainer
12+
import org.gradle.api.tasks.compile.JavaCompile
1013
import org.gradle.jvm.tasks.Jar
1114
import org.gradle.kotlin.dsl.*
1215

1316
private const val lavalinkExtensionName = "lavalinkPlugin"
1417

15-
internal val Project.extension get() = extensions.getByName<LavalinkExtension>(lavalinkExtensionName)
18+
internal val Project.extension
19+
get() = extensions.getByName<LavalinkExtension>(lavalinkExtensionName)
1620

1721
class LavalinkGradlePlugin : Plugin<Project> {
1822
override fun apply(target: Project) {
1923
with(target) {
2024
check(plugins.hasPlugin("org.gradle.java")) { "Please apply the Java/Kotlin plugin before Lavalink" }
2125
configureExtension()
26+
configurePublishing()
2227
val serverDependency = configureDependencies()
2328
configureTasks(serverDependency)
2429
configureSourceSets()
@@ -36,6 +41,7 @@ private fun Project.configureExtension(): LavalinkExtension {
3641
name.convention(project.name)
3742
path.convention(provider { project.group.toString() })
3843
serverVersion.convention(apiVersion)
44+
configurePublishing.convention(true)
3945
}
4046
}
4147

@@ -63,6 +69,20 @@ private fun Project.configureDependencies(): Provider<Dependency> {
6369
}
6470
}
6571

72+
private fun Project.configurePublishing() {
73+
afterEvaluate {
74+
if (extension.configurePublishing.get()) {
75+
configure<PublishingExtension> {
76+
publications {
77+
create<MavenPublication>("maven") {
78+
from(components["java"])
79+
}
80+
}
81+
}
82+
}
83+
}
84+
}
85+
6686
private fun Project.configureSourceSets() {
6787
configure<SourceSetContainer> {
6888
named("main") {

0 commit comments

Comments
 (0)