Skip to content

Commit e0c6afa

Browse files
committed
remove usage of project in task, but apply plugin in subprojects
1 parent 1c9e9d0 commit e0c6afa

File tree

3 files changed

+21
-16
lines changed

3 files changed

+21
-16
lines changed

src/main/kotlin/dev/poolside/gradle/semanticversion/SemanticVersionPlugin.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@ package dev.poolside.gradle.semanticversion
22

33
import org.gradle.api.Plugin
44
import org.gradle.api.Project
5+
import org.gradle.api.publish.PublishingExtension
56
import org.gradle.api.publish.maven.tasks.GenerateMavenPom
67
import org.gradle.api.tasks.compile.JavaCompile
78
import org.gradle.kotlin.dsl.withType
89

910
class SemanticVersionPlugin : Plugin<Project> {
1011
override fun apply(project: Project) {
1112
val extension = project.extensions.create("semanticVersion", SemanticVersionExtension::class.java)
13+
val pubExtension = project.extensions.getByType(PublishingExtension::class.java)
1214
project.tasks.register("semanticVersion", SemanticVersionTask::class.java) {
1315
this.description = "Determines and sets the semantic version"
1416
this.group = "publishing"
1517
this.manual = extension.manual
18+
this.extension = pubExtension
1619
}
1720
project.tasks.withType<JavaCompile> {
1821
this.dependsOn("semanticVersion")

src/main/kotlin/dev/poolside/gradle/semanticversion/SemanticVersionTask.kt

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ abstract class SemanticVersionTask : DefaultTask() {
1414
private val versionRegex = "^\\d+\\.\\d+\$".toRegex()
1515
private val versions = mutableMapOf<String, String>()
1616

17+
@Input
18+
lateinit var extension: PublishingExtension
1719
@Input
1820
var manual: Boolean = false
1921

@@ -27,24 +29,21 @@ abstract class SemanticVersionTask : DefaultTask() {
2729
}
2830

2931
private fun automatic() {
30-
project.allprojects.forEach { p ->
31-
val extension = p.extensions.getByType(PublishingExtension::class.java)
32-
extension.repositories.forEach {
33-
if (it is ResolutionAwareRepository) {
34-
val resolver = it.createResolver()
35-
extension.publications.forEach { publication ->
36-
val pub = publication as MavenPublication
37-
checkVersion(pub.version)
38-
val (key, version) = VersionFinder.findVersion(logger, project, resolver, pub)
39-
pub.version = version
40-
versions[key] = version
41-
}
32+
extension.repositories.forEach {
33+
if (it is ResolutionAwareRepository) {
34+
val resolver = it.createResolver()
35+
extension.publications.forEach { publication ->
36+
val pub = publication as MavenPublication
37+
checkVersion(pub.version)
38+
val (key, version) = VersionFinder.findVersion(logger, project, resolver, pub)
39+
pub.version = version
40+
versions[key] = version
4241
}
4342
}
44-
extension.publications.forEach { publication ->
45-
val pub = publication as MavenPublication
46-
rewrite(pub)
47-
}
43+
}
44+
extension.publications.forEach { publication ->
45+
val pub = publication as MavenPublication
46+
rewrite(pub)
4847
}
4948
}
5049

src/test/kotlin/dev/poolside/gradle/semanticversion/SemanticVersionPluginTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ class SemanticVersionPluginTest {
322322
plugins {
323323
`java-library`
324324
`maven-publish`
325+
id("dev.poolside.gradle.semantic-version")
325326
}
326327
repositories {
327328
mavenCentral()
@@ -578,6 +579,7 @@ class SemanticVersionPluginTest {
578579
plugins {
579580
`java-library`
580581
`maven-publish`
582+
id("dev.poolside.gradle.semantic-version")
581583
}
582584
repositories {
583585
mavenCentral()
@@ -603,6 +605,7 @@ class SemanticVersionPluginTest {
603605
plugins {
604606
`java-platform`
605607
`maven-publish`
608+
id("dev.poolside.gradle.semantic-version")
606609
}
607610
repositories {
608611
mavenCentral()

0 commit comments

Comments
 (0)