buildSrc/src/main/groovy/gradle-plugin-conventions.gradle
plugins {
id "java-conventions"
id "com.gradle.plugin-publish"
id "com.github.johnrengelman.shadow"
}
shadowJar {
archiveClassifier = ""
dependencies {
exclude(dependency {
it.moduleGroup != project.group
})
}
actions.removeAt(0) // remove manifest Class-Path configuration action that requires platform in configuration
}
def shadowDeps(Project project) {
def configuration = project.configurations.findByName("runtimeClasspath")
if (configuration != null) {
for (def dep : configuration.allDependencies) {
if (dep.group == rootProject.group) {
shadowDeps(dep.dependencyProject)
} else {
dependencies {
shadow "$dep.group:$dep.name"
}
}
}
}
}
gradle.projectsEvaluated {
shadowDeps(project)
}
publishing {
publications {
pluginMaven(MavenPublication) {
versionMapping {
allVariants {
fromResolutionResult()
}
}
}
}
}