Skip to content

Commit dfed869

Browse files
committed
feat(gradle-plugin): Track the Gradle variant of dependencies
This is a preparation for finding an alternative solution to [1] that does not require modifying the basic `Identifier` class. Note that the tracking of variants is only fully implemented for the `gradle-plugin` as used by the `GradleInspector`; for the "legacy" `Gradle` package manager the variants are always empty. [1]: #9817 Signed-off-by: Jendrik Johannes <[email protected]> Signed-off-by: Sebastian Schuberth <[email protected]>
1 parent f0f0aee commit dfed869

File tree

4 files changed

+7
-1
lines changed

4 files changed

+7
-1
lines changed

plugins/package-managers/gradle-model/src/main/kotlin/GradleModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ interface OrtDependency {
4343
val version: String
4444
val classifier: String
4545
val extension: String
46+
val variants: Set<String>
4647
val dependencies: List<OrtDependency>
4748
val error: String?
4849
val warning: String?

plugins/package-managers/gradle-plugin/src/main/kotlin/OrtModelBuilder.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ internal class OrtModelBuilder : ToolingModelBuilder {
226226
version = id.version,
227227
classifier = "",
228228
extension = modelBuildingResult?.effectiveModel?.packaging.orEmpty(),
229+
variants = selectedComponent.variants.mapTo(mutableSetOf()) { it.displayName },
229230
dependencies = dependencies,
230231
error = null,
231232
warning = null,
@@ -255,6 +256,7 @@ internal class OrtModelBuilder : ToolingModelBuilder {
255256
version = moduleId.version.takeUnless { it == "unspecified" }.orEmpty(),
256257
classifier = "",
257258
extension = "",
259+
variants = selectedComponent.variants.mapTo(mutableSetOf()) { it.displayName },
258260
dependencies = dependencies,
259261
error = null,
260262
warning = null,

plugins/package-managers/gradle-plugin/src/main/kotlin/OrtModelImpl.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ internal class OrtDependencyImpl(
5252
override val version: String,
5353
override val classifier: String,
5454
override val extension: String,
55+
override val variants: Set<String>,
5556
override val dependencies: List<OrtDependency>,
5657
override val error: String?,
5758
override val warning: String?,

plugins/package-managers/gradle/src/main/resources/init.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ interface OrtDependency {
7272
String getVersion()
7373
String getClassifier()
7474
String getExtension()
75+
Set<String> getVariants()
7576
List<OrtDependency> getDependencies()
7677
String getError()
7778
String getWarning()
@@ -112,6 +113,7 @@ class OrtDependencyImpl implements OrtDependency, Serializable {
112113
String version = ''
113114
String classifier = ''
114115
String extension = ''
116+
Set<String> variants = []
115117
List<OrtDependency> dependencies = []
116118
String error
117119
String warning
@@ -382,7 +384,7 @@ class AbstractOrtDependencyTreePlugin<T> implements Plugin<T> {
382384
def classifier = artifact?.classifier ?: ''
383385
def extension = artifact?.extension ?: ''
384386

385-
return new OrtDependencyImpl(id.group, id.module, id.version, classifier, extension, dependencies,
387+
return new OrtDependencyImpl(id.group, id.module, id.version, classifier, extension, [] as Set, dependencies,
386388
error, warning, pomFile, null)
387389
} else if (id instanceof ProjectComponentIdentifier) {
388390
if (id.build.isCurrentBuild() || !project.gradle.gradleVersion.isAtLeastVersion(7, 2)) {

0 commit comments

Comments
 (0)