Skip to content

Commit fb9d312

Browse files
authored
Fix artifact conflicts for built-in tasks (#31)
* Put built-in tasks in their own folder * Don't run actions on plugin markers
1 parent e88c8e4 commit fb9d312

File tree

8 files changed

+23
-17
lines changed

8 files changed

+23
-17
lines changed

deployer/src/main/kotlin/io/deepmedia/tools/deployer/inference/AndroidInference.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.deepmedia.tools.deployer.inference
22

33
import io.deepmedia.tools.deployer.isKotlinProject
4-
import io.deepmedia.tools.deployer.model.Component
54
import io.deepmedia.tools.deployer.model.DeploySpec
65
import org.gradle.api.Project
76
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
@@ -27,11 +26,11 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
2726
*/
2827
internal class AndroidInference(private val componentNames: List<String>) : Inference {
2928

30-
override fun inferComponents(project: Project, spec: DeploySpec, create: (Component.() -> Unit) -> Component) {
29+
override fun inferComponents(project: Project, spec: DeploySpec, create: InferenceComponentFactory) {
3130
project.plugins.withId("com.android.library") {
3231
val kotlin = if (project.isKotlinProject) project.kotlinExtension else null
3332
componentNames.forEach { componentName ->
34-
create {
33+
create(true) {
3534
fromSoftwareComponent(componentName)
3635

3736
packaging.set("aar")

deployer/src/main/kotlin/io/deepmedia/tools/deployer/inference/GradlePluginInference.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import org.gradle.plugin.devel.GradlePluginDevelopmentExtension
1717
*/
1818
internal class GradlePluginInference : Inference {
1919

20-
override fun inferComponents(project: Project, spec: DeploySpec, create: (Component.() -> Unit) -> Component) {
20+
override fun inferComponents(project: Project, spec: DeploySpec, create: InferenceComponentFactory) {
2121
project.plugins.withId("java-gradle-plugin") {
2222
val gradlePlugin = project.extensions.getByType<GradlePluginDevelopmentExtension>()
2323
project.whenEvaluated {
@@ -27,13 +27,13 @@ internal class GradlePluginInference : Inference {
2727
}
2828
}
2929

30-
private fun inferComponents(project: Project, spec: DeploySpec, gradlePlugins: GradlePluginDevelopmentExtension, create: (Component.() -> Unit) -> Component) {
31-
val mainComponent = create {
30+
private fun inferComponents(project: Project, spec: DeploySpec, gradlePlugins: GradlePluginDevelopmentExtension, create: InferenceComponentFactory) {
31+
val mainComponent = create(true) {
3232
fromMavenPublication("pluginMaven", clone = true)
3333
packaging.set("jar")
3434
}
3535
gradlePlugins.plugins.all {
36-
create {
36+
create(false) {
3737
fromGradlePluginDeclaration(this@all, mainComponent, clone = true)
3838
}
3939
}

deployer/src/main/kotlin/io/deepmedia/tools/deployer/inference/Inference.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ import io.deepmedia.tools.deployer.model.Component
44
import io.deepmedia.tools.deployer.model.DeploySpec
55
import org.gradle.api.Project
66

7+
8+
internal typealias InferenceComponentFactory = (runUserAction: Boolean, configure: Component.() -> Unit) -> Component
9+
710
internal interface Inference {
811
fun inferComponents(
912
project: Project,
1013
spec: DeploySpec,
11-
create: (Component.() -> Unit) -> Component
14+
create: InferenceComponentFactory
1215
)
1316
}

deployer/src/main/kotlin/io/deepmedia/tools/deployer/inference/JavaInference.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package io.deepmedia.tools.deployer.inference
22

3-
import io.deepmedia.tools.deployer.model.Component
43
import io.deepmedia.tools.deployer.model.DeploySpec
54
import org.gradle.api.Project
65

76
/**
87
* Unused, replaced with Component.fromJava() instead.
98
*/
109
internal class JavaInference : Inference {
11-
override fun inferComponents(project: Project, spec: DeploySpec, create: (Component.() -> Unit) -> Component) {
10+
override fun inferComponents(project: Project, spec: DeploySpec, create: InferenceComponentFactory) {
1211
project.plugins.withId("java") {
13-
create {
12+
create(true) {
1413
fromSoftwareComponent("java")
1514
}
1615
}

deployer/src/main/kotlin/io/deepmedia/tools/deployer/inference/KotlinInference.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.deepmedia.tools.deployer.inference
22

3-
import io.deepmedia.tools.deployer.model.Component
43
import io.deepmedia.tools.deployer.model.DeploySpec
54
import org.gradle.api.Project
65
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
@@ -18,13 +17,13 @@ internal class KotlinInference : Inference {
1817
"org.jetbrains.kotlin.multiplatform"
1918
)
2019

21-
private fun inferComponent(target: KotlinTarget, multiplatform: Boolean, create: (Component.() -> Unit) -> Component) {
20+
private fun inferComponent(target: KotlinTarget, multiplatform: Boolean, create: InferenceComponentFactory) {
2221
if (target is KotlinAndroidTarget) {
2322
// Should use AndroidInference!
2423
return
2524
}
2625
if (target is KotlinOnlyTarget<*>) {
27-
create {
26+
create(true) {
2827
fromKotlinTarget(target)
2928
if (multiplatform && target.platformType != KotlinPlatformType.common) {
3029
artifactId.set { "$it-${target.name.lowercase()}" }
@@ -35,7 +34,7 @@ internal class KotlinInference : Inference {
3534
}
3635
}
3736

38-
override fun inferComponents(project: Project, spec: DeploySpec, create: (Component.() -> Unit) -> Component) {
37+
override fun inferComponents(project: Project, spec: DeploySpec, create: InferenceComponentFactory) {
3938
pluginIds.forEach { pluginId ->
4039
project.plugins.withId(pluginId) {
4140
val kotlin = project.kotlinExtension

deployer/src/main/kotlin/io/deepmedia/tools/deployer/model/Content.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ open class Content @Inject constructor(private val objects: ObjectFactory) : Com
5252
inherit.finalizeValue() // fixes 'components'
5353
inferenceData.finalizeValue()
5454
inferenceData.get().forEach {
55-
it.inference.inferComponents(project, spec) { configure ->
55+
it.inference.inferComponents(project, spec) { runUserAction, configure ->
5656
component {
5757
configure()
58-
it.action.execute(this)
58+
if (runUserAction) it.action.execute(this)
5959
}
6060
}
6161
}

deployer/src/main/kotlin/io/deepmedia/tools/deployer/tasks/Docs.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ internal val MavenArtifact.isDocsJar get() = classifier == "javadoc" && extensio
1111

1212
internal val Project.makeEmptyDocsJar get() = tasks.maybeRegister<Jar>("makeEmptyDocsJar") {
1313
archiveClassifier.set("javadoc")
14+
destinationDirectory.set(layout.buildDirectory.dir("deployer").get().dir("builtins").dir("emptyDocs"))
1415
}
1516

1617
/* private val Project.makeAutoDocsJar: TaskProvider<Jar> get() {

deployer/src/main/kotlin/io/deepmedia/tools/deployer/tasks/Sources.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@ internal val MavenArtifact.isSourcesJar get() = classifier == "sources" && exten
1818

1919
internal val Project.makeEmptySourcesJar get() = tasks.maybeRegister<Jar>("makeEmptySourcesJar") {
2020
archiveClassifier.set("sources")
21+
destinationDirectory.set(layout.buildDirectory.dir("deployer").get().dir("builtins").dir("emptySources"))
2122
}
2223

2324
internal val Project.makeKotlinSourcesJar: TaskProvider<Jar> get() = tasks.maybeRegister("makeKotlinSourcesJar") {
2425
archiveClassifier.set("sources")
26+
destinationDirectory.set(layout.buildDirectory.dir("deployer").get().dir("builtins").dir("kotlinSources"))
27+
2528
val kotlin = project.kotlinExtension
2629
kotlin.sourceSets.all {
2730
val sourceSet = this
@@ -34,6 +37,8 @@ internal val Project.makeKotlinSourcesJar: TaskProvider<Jar> get() = tasks.maybe
3437

3538
internal val Project.makeJavaSourcesJar: TaskProvider<Jar> get() = tasks.maybeRegister("makeJavaSourcesJar") {
3639
archiveClassifier.set("sources")
40+
destinationDirectory.set(layout.buildDirectory.dir("deployer").get().dir("builtins").dir("javaSources"))
41+
3742
val java = project.extensions.getByType<JavaPluginExtension>()
3843
from(java.sourceSets["main"].allSource)
3944
}

0 commit comments

Comments
 (0)