Fix ConcurrentModificationException
This exception is happening on build configuration trying to remove default jar task artifacts from published one. I've set 'jar' task to be always disabled instead and just add shadow jar to artifacts.
This commit is contained in:
@@ -47,26 +47,29 @@ fun Project.testsJar(body: Jar.() -> Unit = {}): Jar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var Project.artifactsRemovedDiagnosticFlag: Boolean
|
fun Project.setPublishableArtifact(
|
||||||
get() = extra.has("artifactsRemovedDiagnosticFlag") && extra["artifactsRemovedDiagnosticFlag"] == true
|
jarTask: TaskProvider<out Jar>
|
||||||
set(value) {
|
) {
|
||||||
extra["artifactsRemovedDiagnosticFlag"] = value
|
addArtifact("runtimeElements", jarTask)
|
||||||
}
|
addArtifact("apiElements", jarTask)
|
||||||
|
addArtifact("archives", jarTask)
|
||||||
|
}
|
||||||
|
|
||||||
fun Project.removeArtifacts(configuration: Configuration, task: Task) {
|
fun removeJarTaskArtifact(
|
||||||
configuration.artifacts.removeAll { artifact ->
|
jarTask: TaskProvider<out Jar>
|
||||||
artifact.file in task.outputs.files
|
): Configuration.() -> Unit = {
|
||||||
}
|
val jarFile = jarTask.get().archiveFile.get().asFile
|
||||||
|
artifacts.removeIf { it.file == jarFile }
|
||||||
artifactsRemovedDiagnosticFlag = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Project.noDefaultJar() {
|
fun Project.noDefaultJar() {
|
||||||
tasks.named("jar").configure {
|
val jarTask = tasks.named<Jar>("jar") {
|
||||||
configurations.forEach { cfg ->
|
enabled = false
|
||||||
removeArtifacts(cfg, this)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configurations.named("apiElements", removeJarTaskArtifact(jarTask))
|
||||||
|
configurations.named("runtimeElements", removeJarTaskArtifact(jarTask))
|
||||||
|
configurations.named("archives", removeJarTaskArtifact(jarTask))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Jar.addEmbeddedRuntime() {
|
fun Jar.addEmbeddedRuntime() {
|
||||||
|
|||||||
@@ -147,6 +147,4 @@ val resultJar by task<Jar> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
addArtifact("runtime", resultJar)
|
setPublishableArtifact(resultJar)
|
||||||
addArtifact("runtimeElements", resultJar)
|
|
||||||
addArtifact("archives", resultJar)
|
|
||||||
|
|||||||
@@ -121,10 +121,6 @@ val resultJar by task<Jar> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addArtifact("apiElements", resultJar)
|
setPublishableArtifact(resultJar)
|
||||||
addArtifact("runtimeElements", resultJar)
|
|
||||||
addArtifact("archives", resultJar)
|
|
||||||
|
|
||||||
sourcesJar()
|
sourcesJar()
|
||||||
|
|
||||||
javadocJar()
|
javadocJar()
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ dependencies {
|
|||||||
|
|
||||||
publish()
|
publish()
|
||||||
|
|
||||||
noDefaultJar()
|
|
||||||
runtimeJar(rewriteDefaultJarDepsToShadedCompiler())
|
runtimeJar(rewriteDefaultJarDepsToShadedCompiler())
|
||||||
|
|
||||||
sourcesJar()
|
sourcesJar()
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ sourceSets {
|
|||||||
"test" { projectDefault() }
|
"test" { projectDefault() }
|
||||||
}
|
}
|
||||||
|
|
||||||
publish()
|
|
||||||
|
|
||||||
// dummy is used for rewriting dependencies to the shaded packages in the embeddable compiler
|
// dummy is used for rewriting dependencies to the shaded packages in the embeddable compiler
|
||||||
compilerDummyJar(compilerDummyForDependenciesRewriting("compilerDummy") {
|
compilerDummyJar(compilerDummyForDependenciesRewriting("compilerDummy") {
|
||||||
archiveClassifier.set("dummy")
|
archiveClassifier.set("dummy")
|
||||||
@@ -54,6 +52,10 @@ val runtimeJar = runtimeJar(embeddableCompiler()) {
|
|||||||
mergeServiceFiles()
|
mergeServiceFiles()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
publish {
|
||||||
|
setArtifacts(listOf(runtimeJar))
|
||||||
|
}
|
||||||
|
|
||||||
sourcesJar {
|
sourcesJar {
|
||||||
val compilerTask = project(":kotlin-compiler").tasks.named<Jar>("sourcesJar")
|
val compilerTask = project(":kotlin-compiler").tasks.named<Jar>("sourcesJar")
|
||||||
dependsOn(compilerTask)
|
dependsOn(compilerTask)
|
||||||
|
|||||||
@@ -79,9 +79,7 @@ idePluginDependency {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addArtifact("runtime", resultJar)
|
setPublishableArtifact(resultJar)
|
||||||
addArtifact("runtimeElements", resultJar)
|
|
||||||
addArtifact("archives", resultJar)
|
|
||||||
|
|
||||||
publish()
|
publish()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user