Build: Remove artifact configuration out of lazy lambda
It may not be executed leading to misconfiguration
This commit is contained in:
@@ -6,6 +6,7 @@ import org.gradle.api.Task
|
||||
import org.gradle.api.artifacts.ConfigurablePublishArtifact
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.artifacts.ConfigurationContainer
|
||||
import org.gradle.api.artifacts.PublishArtifact
|
||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
||||
import org.gradle.api.file.DuplicatesStrategy
|
||||
import org.gradle.api.plugins.BasePluginConvention
|
||||
@@ -58,11 +59,15 @@ fun Project.noDefaultJar() {
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.runtimeJarArtifactBy(task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) {
|
||||
fun <T : Task> Project.runtimeJarArtifactBy(
|
||||
task: TaskProvider<T>,
|
||||
artifactRef: Any,
|
||||
body: ConfigurablePublishArtifact.() -> Unit = {}
|
||||
) {
|
||||
addArtifact("archives", task, artifactRef, body)
|
||||
addArtifact("runtimeJar", task, artifactRef, body)
|
||||
configurations.findByName("runtime")?.let {
|
||||
addArtifact(it, task, artifactRef, body)
|
||||
addArtifact(it.name, task, artifactRef, body)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,8 +87,8 @@ fun <T : Jar> Project.runtimeJar(task: TaskProvider<T>, body: T.() -> Unit = {})
|
||||
setupPublicJar(project.the<BasePluginConvention>().archivesBaseName)
|
||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
body()
|
||||
project.runtimeJarArtifactBy(this, this)
|
||||
}
|
||||
project.runtimeJarArtifactBy(task, task)
|
||||
return task
|
||||
}
|
||||
|
||||
@@ -261,6 +266,19 @@ fun <T : Task> Project.addArtifact(configurationName: String, task: TaskProvider
|
||||
artifacts.add(configurationName, task, body)
|
||||
}
|
||||
|
||||
fun <T : Task> Project.addArtifact(
|
||||
configurationName: String,
|
||||
task: TaskProvider<T>,
|
||||
artifactRef: Any,
|
||||
body: ConfigurablePublishArtifact.() -> Unit = {}
|
||||
): PublishArtifact {
|
||||
configurations.maybeCreate(configurationName)
|
||||
return artifacts.add(configurationName, artifactRef) {
|
||||
builtBy(task)
|
||||
body()
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.cleanArtifacts() {
|
||||
configurations["archives"].artifacts.let { artifacts ->
|
||||
artifacts.forEach {
|
||||
|
||||
@@ -54,7 +54,7 @@ if (deployVersion != null) {
|
||||
|
||||
noDefaultJar()
|
||||
|
||||
tasks.register<ShadowJar>("shadowJar") {
|
||||
val shadowJar = tasks.register<ShadowJar>("shadowJar") {
|
||||
callGroovy("manifestAttributes", manifest, project)
|
||||
manifest.attributes["Implementation-Version"] = version
|
||||
|
||||
@@ -62,12 +62,10 @@ tasks.register<ShadowJar>("shadowJar") {
|
||||
exclude("**/*.proto")
|
||||
configurations = listOf(shadows)
|
||||
relocate("org.jetbrains.kotlin", "kotlinx.metadata.internal")
|
||||
|
||||
val artifactRef = outputs.files.singleFile
|
||||
runtimeJarArtifactBy(this, artifactRef)
|
||||
addArtifact("runtime", this, artifactRef)
|
||||
}
|
||||
|
||||
runtimeJarArtifactBy(shadowJar, shadowJar)
|
||||
|
||||
val test by tasks
|
||||
test.dependsOn("shadowJar")
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ if (deployVersion != null) {
|
||||
|
||||
noDefaultJar()
|
||||
|
||||
tasks.register<ShadowJar>("shadowJar") {
|
||||
val shadowJar = tasks.register<ShadowJar>("shadowJar") {
|
||||
callGroovy("manifestAttributes", manifest, project)
|
||||
manifest.attributes["Implementation-Version"] = version
|
||||
|
||||
@@ -52,12 +52,10 @@ tasks.register<ShadowJar>("shadowJar") {
|
||||
exclude("**/*.proto")
|
||||
configurations = listOf(shadows)
|
||||
relocate("org.jetbrains.kotlin", "kotlinx.metadata.internal")
|
||||
|
||||
val artifactRef = outputs.files.singleFile
|
||||
runtimeJarArtifactBy(this, artifactRef)
|
||||
addArtifact("runtime", this, artifactRef)
|
||||
}
|
||||
|
||||
runtimeJarArtifactBy(shadowJar, shadowJar)
|
||||
|
||||
sourcesJar {
|
||||
for (dependency in shadows.dependencies) {
|
||||
if (dependency is ProjectDependency) {
|
||||
|
||||
Reference in New Issue
Block a user