Jack Darlington
05/29/2022, 6:00 PMYoussef Shoaib [MOD]
05/29/2022, 6:33 PMJack Darlington
05/29/2022, 6:43 PMJack Darlington
05/29/2022, 6:44 PMJack Darlington
05/29/2022, 6:44 PMJack Darlington
05/29/2022, 6:44 PMJack Darlington
05/29/2022, 6:44 PMYoussef Shoaib [MOD]
05/29/2022, 6:49 PMYoussef Shoaib [MOD]
05/29/2022, 6:54 PMoverride fun getPluginArtifact(): SubpluginArtifact = SubpluginArtifact(
groupId = BuildConfig.KOTLIN_PLUGIN_GROUP,
artifactId = BuildConfig.KOTLIN_PLUGIN_NAME,
version = BuildConfig.KOTLIN_PLUGIN_VERSION
)
override fun getPluginArtifactForNative(): SubpluginArtifact = SubpluginArtifact(
groupId = BuildConfig.KOTLIN_PLUGIN_GROUP,
artifactId = BuildConfig.KOTLIN_PLUGIN_NAME + "-native",
version = BuildConfig.KOTLIN_PLUGIN_VERSION
)
Jack Darlington
05/29/2022, 9:41 PMJack Darlington
05/29/2022, 9:42 PMJack Darlington
05/29/2022, 9:45 PMimport org.jetbrains.kotlin.gradle.tasks.KotlinCompile
Plugin:
plugins {
kotlin("jvm")
kotlin("kapt")
`maven-publish`
}
apply(from = "../maven-publishing-setup.kts")
dependencies {
compileOnly("org.jetbrains.kotlin:kotlin-compiler-embeddable")
compileOnly("org.jetbrains.kotlin:kotlin-annotation-processing-embeddable")
kapt("com.google.auto.service:auto-service:1.0")
api("com.squareup:kotlinpoet:1.9.0")
api("com.google.code.gson:gson:2.9.0")
compileOnly("com.google.auto.service:auto-service-annotations:1.0")
...
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.freeCompilerArgs += "-Xjvm-default=compatibility"
}
publishing {
publications {
create<MavenPublication>("default") {
from(components["java"])
artifact(tasks.kotlinSourcesJar)
}
}
}
Jack Darlington
05/29/2022, 9:47 PMplugins {
kotlin("jvm")
id("java-gradle-plugin")
id("com.github.gmazzo.buildconfig")
id("com.gradle.plugin-publish")
`maven-publish`
}
apply(from = "../maven-publishing-setup.kts")
dependencies {
implementation(kotlin("gradle-plugin-api"))
implementation("com.squareup:kotlinpoet:1.9.0")
}
try {
buildConfig {
val pluginProject = project(":plugin")
packageName(pluginProject.group.toString())
buildConfigField("String", "KOTLIN_PLUGIN_ID", "\"${pluginProject.group}.${pluginProject.name}\"")
buildConfigField("String", "KOTLIN_PLUGIN_GROUP", "\"${pluginProject.group}\"")
buildConfigField("String", "KOTLIN_PLUGIN_NAME", "\"${pluginProject.name}\"")
buildConfigField("String", "KOTLIN_PLUGIN_VERSION", "\"${pluginProject.version}\"")
val annotationProject = project(":general-code")
buildConfigField("String", "ANNOTATION_LIBRARY_GROUP", "\"${annotationProject.group}\"")
buildConfigField("String", "ANNOTATION_LIBRARY_NAME", "\"${annotationProject.name}\"")
buildConfigField("String", "ANNOTATION_LIBRARY_VERSION", "\"${annotationProject.version}\"")
}
gradlePlugin {
plugins {
create("plugin-name") {
id = "plugin.package"
displayName = "blah"
description = "blah"
implementationClass = "EntryPointClass"
}
}
}
} catch (e: Exception) {
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.freeCompilerArgs += "-Xjvm-default=compatibility"
}
sourceSets.main.get()
.apply { println(this) }
.compileClasspath.apply { println(this) }.forEach {
println(it)
}
tasks {
jar {
from(
sourceSets.main.get()
.apply { println(this) }
.compileClasspath.apply { println(this) }.filter { dependency ->
listOf(
"gradle-plugin-commons",
).any {
dependency.absolutePath.contains(it)
}
}.map(::zipTree)
)
}
}
Jack Darlington
05/29/2022, 9:48 PMJack Darlington
05/29/2022, 10:03 PMJack Darlington
05/30/2022, 10:48 AM