Skip to content

Commit 3aa8b83

Browse files
authored
build: added isEnabled on publishing extension (#22)
1 parent 4add746 commit 3aa8b83

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

buildSrc/src/main/kotlin/io/tnboot/gradle/build/PublishPlugin.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ class PublishPlugin : Plugin<Project> {
2020
}
2121
}
2222

23-
open class Extension {
23+
open class Extension(
24+
private val project: Project,
25+
) {
2426
var enabled = true
2527
var evenWithChildren = false
2628

@@ -37,13 +39,15 @@ class PublishPlugin : Plugin<Project> {
3739
fun configure(block: MavenPublication.() -> Unit) {
3840
configurations.add(block)
3941
}
42+
43+
val isEnabled get() = enabled && (evenWithChildren || project.childProjects.isEmpty())
4044
}
4145

4246
override fun apply(target: Project) {
43-
target.extensions.add(Extension::class.java, "publish", Extension())
47+
target.extensions.add(Extension::class.java, "publish", Extension(target))
4448
target.afterEvaluate {
4549
target.extensions.getByType(Extension::class.java).let { extension ->
46-
if (!extension.enabled || (target.childProjects.isNotEmpty() && !extension.evenWithChildren)) return@afterEvaluate
50+
if (!extension.isEnabled) return@afterEvaluate
4751
log.debug("Enabling Maven Publications for project {}", target.name)
4852
target.mavenPublish {
4953
extension.configurations.forEach {

telenor-boot-dependencies/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import io.tnboot.gradle.build.DependencyGroups
2+
import io.tnboot.gradle.build.PublishPlugin
23
import io.tnboot.gradle.build.mavenPublish
34

45
plugins {
@@ -15,6 +16,13 @@ val bom = DependencyGroups(
1516
dependencies {
1617
constraints {
1718
bom.dependencies.forEach { add("api", it) }
19+
20+
rootProject.allprojects.filter {
21+
it != project && it.plugins.hasPlugin(PublishPlugin::class.java) &&
22+
it.extensions.getByType(PublishPlugin.Extension::class.java).isEnabled
23+
}.forEach {
24+
add("api", it)
25+
}
1826
}
1927
}
2028

0 commit comments

Comments
 (0)