Skip to content

Commit 5e6d68e

Browse files
committed
feat(gradle-model): 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. [1]: #9817 Signed-off-by: Jendrik Johannes <[email protected]> Signed-off-by: Sebastian Schuberth <[email protected]>
1 parent 923b8d6 commit 5e6d68e

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
@@ -41,6 +41,7 @@ interface OrtDependency {
4141
val groupId: String
4242
val artifactId: String
4343
val version: String
44+
val variants: Set<String>
4445
val classifier: String
4546
val extension: String
4647
val dependencies: List<OrtDependency>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ internal class OrtModelBuilder : ToolingModelBuilder {
224224
groupId = id.group,
225225
artifactId = id.module,
226226
version = id.version,
227+
variants = selectedComponent.variants.mapTo(mutableSetOf()) { it.displayName },
227228
classifier = "",
228229
extension = modelBuildingResult?.effectiveModel?.packaging.orEmpty(),
229230
dependencies = dependencies,
@@ -253,6 +254,7 @@ internal class OrtModelBuilder : ToolingModelBuilder {
253254
groupId = moduleId.group,
254255
artifactId = moduleId.name,
255256
version = moduleId.version.takeUnless { it == "unspecified" }.orEmpty(),
257+
variants = selectedComponent.variants.mapTo(mutableSetOf()) { it.displayName },
256258
classifier = "",
257259
extension = "",
258260
dependencies = dependencies,

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

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

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ interface OrtDependency {
7171
String getArtifactId()
7272
String getVersion()
7373
String getClassifier()
74+
Set<String> getVariants()
7475
String getExtension()
7576
List<OrtDependency> getDependencies()
7677
String getError()
@@ -110,6 +111,7 @@ class OrtDependencyImpl implements OrtDependency, Serializable {
110111
String groupId = ''
111112
String artifactId = ''
112113
String version = ''
114+
Set<String> variants = []
113115
String classifier = ''
114116
String extension = ''
115117
List<OrtDependency> dependencies = []
@@ -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, [] as Set, classifier, extension, 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)