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.ConfigurablePublishArtifact
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.ConfigurationContainer
|
import org.gradle.api.artifacts.ConfigurationContainer
|
||||||
|
import org.gradle.api.artifacts.PublishArtifact
|
||||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
||||||
import org.gradle.api.file.DuplicatesStrategy
|
import org.gradle.api.file.DuplicatesStrategy
|
||||||
import org.gradle.api.plugins.BasePluginConvention
|
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("archives", task, artifactRef, body)
|
||||||
addArtifact("runtimeJar", task, artifactRef, body)
|
addArtifact("runtimeJar", task, artifactRef, body)
|
||||||
configurations.findByName("runtime")?.let {
|
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)
|
setupPublicJar(project.the<BasePluginConvention>().archivesBaseName)
|
||||||
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||||
body()
|
body()
|
||||||
project.runtimeJarArtifactBy(this, this)
|
|
||||||
}
|
}
|
||||||
|
project.runtimeJarArtifactBy(task, task)
|
||||||
return task
|
return task
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,6 +266,19 @@ fun <T : Task> Project.addArtifact(configurationName: String, task: TaskProvider
|
|||||||
artifacts.add(configurationName, task, body)
|
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() {
|
fun Project.cleanArtifacts() {
|
||||||
configurations["archives"].artifacts.let { artifacts ->
|
configurations["archives"].artifacts.let { artifacts ->
|
||||||
artifacts.forEach {
|
artifacts.forEach {
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ if (deployVersion != null) {
|
|||||||
|
|
||||||
noDefaultJar()
|
noDefaultJar()
|
||||||
|
|
||||||
tasks.register<ShadowJar>("shadowJar") {
|
val shadowJar = tasks.register<ShadowJar>("shadowJar") {
|
||||||
callGroovy("manifestAttributes", manifest, project)
|
callGroovy("manifestAttributes", manifest, project)
|
||||||
manifest.attributes["Implementation-Version"] = version
|
manifest.attributes["Implementation-Version"] = version
|
||||||
|
|
||||||
@@ -62,12 +62,10 @@ tasks.register<ShadowJar>("shadowJar") {
|
|||||||
exclude("**/*.proto")
|
exclude("**/*.proto")
|
||||||
configurations = listOf(shadows)
|
configurations = listOf(shadows)
|
||||||
relocate("org.jetbrains.kotlin", "kotlinx.metadata.internal")
|
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
|
val test by tasks
|
||||||
test.dependsOn("shadowJar")
|
test.dependsOn("shadowJar")
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ if (deployVersion != null) {
|
|||||||
|
|
||||||
noDefaultJar()
|
noDefaultJar()
|
||||||
|
|
||||||
tasks.register<ShadowJar>("shadowJar") {
|
val shadowJar = tasks.register<ShadowJar>("shadowJar") {
|
||||||
callGroovy("manifestAttributes", manifest, project)
|
callGroovy("manifestAttributes", manifest, project)
|
||||||
manifest.attributes["Implementation-Version"] = version
|
manifest.attributes["Implementation-Version"] = version
|
||||||
|
|
||||||
@@ -52,12 +52,10 @@ tasks.register<ShadowJar>("shadowJar") {
|
|||||||
exclude("**/*.proto")
|
exclude("**/*.proto")
|
||||||
configurations = listOf(shadows)
|
configurations = listOf(shadows)
|
||||||
relocate("org.jetbrains.kotlin", "kotlinx.metadata.internal")
|
relocate("org.jetbrains.kotlin", "kotlinx.metadata.internal")
|
||||||
|
|
||||||
val artifactRef = outputs.files.singleFile
|
|
||||||
runtimeJarArtifactBy(this, artifactRef)
|
|
||||||
addArtifact("runtime", this, artifactRef)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
runtimeJarArtifactBy(shadowJar, shadowJar)
|
||||||
|
|
||||||
sourcesJar {
|
sourcesJar {
|
||||||
for (dependency in shadows.dependencies) {
|
for (dependency in shadows.dependencies) {
|
||||||
if (dependency is ProjectDependency) {
|
if (dependency is ProjectDependency) {
|
||||||
|
|||||||
Reference in New Issue
Block a user