Skip to content

Commit e665d99

Browse files
authored
Exposing GradleAPITarget classpaths as Dependency (#62)
1 parent de690ff commit e665d99

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

plugin/api/plugin.api

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
public abstract interface class io/github/gmazzo/gradle/multiapi/GradleAPITarget : org/gradle/api/Named {
22
public abstract fun getFeatureName ()Ljava/lang/String;
3-
public abstract fun getGradleApi ()Lorg/gradle/api/file/FileCollection;
4-
public abstract fun getGradleKotlinDsl ()Lorg/gradle/api/file/FileCollection;
5-
public abstract fun getGradleTestKit ()Lorg/gradle/api/file/FileCollection;
3+
public abstract fun getGradleApi ()Lorg/gradle/api/artifacts/Dependency;
4+
public abstract fun getGradleKotlinDsl ()Lorg/gradle/api/artifacts/Dependency;
5+
public abstract fun getGradleTestKit ()Lorg/gradle/api/artifacts/Dependency;
66
public abstract fun getGradleVersion ()Lorg/gradle/util/GradleVersion;
77
public abstract fun getSourceSet ()Lorg/gradle/api/tasks/SourceSet;
88
public abstract fun getTestSuite ()Lorg/gradle/api/plugins/jvm/JvmTestSuite;

plugin/src/main/kotlin/io/github/gmazzo/gradle/multiapi/GradleAPIClasspathProvider.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import java.io.File
66
import javax.inject.Inject
77
import org.gradle.api.Named
88
import org.gradle.api.Project
9+
import org.gradle.api.artifacts.Dependency
10+
import org.gradle.api.artifacts.dsl.Dependencies
911
import org.gradle.api.file.FileCollection
1012
import org.gradle.api.internal.file.FileCollectionFactory
1113
import org.gradle.api.internal.file.collections.MinimalFileSet
@@ -36,6 +38,8 @@ internal abstract class GradleAPIClasspathProvider @Inject constructor(
3638

3739
private val logger = project.logger
3840

41+
private val dependencies = project.dependencies
42+
3943
private val forceRebuild = gradle.startParameter.isRerunTasks
4044

4145
private val workDirs by lazy { extractAPIs() }
@@ -47,13 +51,13 @@ internal abstract class GradleAPIClasspathProvider @Inject constructor(
4751
GradleVersion.version(name)
4852

4953
override val gradleApi =
50-
createCollection("Gradle ${gradleVersion.version} API files") { workDirs.first }
54+
createDependency("Gradle ${gradleVersion.version} API files") { workDirs.first }
5155

5256
override val gradleTestKit =
53-
createCollection("Gradle ${gradleVersion.version} TestKit files") { workDirs.second }
57+
createDependency("Gradle ${gradleVersion.version} TestKit files") { workDirs.second }
5458

5559
override val gradleKotlinDsl =
56-
createCollection("Gradle ${gradleVersion.version} Kotlin DSL files") { workDirs.third }
60+
createDependency("Gradle ${gradleVersion.version} Kotlin DSL files") { workDirs.third }
5761

5862
override val sourceSet: SourceSet =
5963
sourceSets.maybeCreate(featureName)
@@ -108,8 +112,8 @@ internal abstract class GradleAPIClasspathProvider @Inject constructor(
108112
return result
109113
}
110114

111-
private fun createCollection(displayName: String, classpathFile: () -> File): FileCollection =
112-
fileCollectionFactory.create(GradleClasspath(displayName, classpathFile))
115+
private fun createDependency(displayName: String, classpathFile: () -> File): Dependency =
116+
dependencies.create(fileCollectionFactory.create(GradleClasspath(displayName, classpathFile)))
113117

114118
private val File.isValidClasspath
115119
get() = isFile && useLines { lines -> lines.all { File(it).isFile } }

plugin/src/main/kotlin/io/github/gmazzo/gradle/multiapi/GradleAPITarget.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package io.github.gmazzo.gradle.multiapi
44

55
import org.gradle.api.Named
6+
import org.gradle.api.artifacts.Dependency
67
import org.gradle.api.file.FileCollection
78
import org.gradle.api.plugins.jvm.JvmTestSuite
89
import org.gradle.api.tasks.SourceSet
@@ -14,11 +15,11 @@ public interface GradleAPITarget : Named {
1415

1516
public val gradleVersion: GradleVersion
1617

17-
public val gradleApi: FileCollection
18+
public val gradleApi: Dependency
1819

19-
public val gradleTestKit: FileCollection
20+
public val gradleTestKit: Dependency
2021

21-
public val gradleKotlinDsl: FileCollection
22+
public val gradleKotlinDsl: Dependency
2223

2324
public val sourceSet: SourceSet
2425

0 commit comments

Comments
 (0)