Skip to content

gradle copy deps init script to speed up collectGradleDependencies #593

@prabhu

Description

@prabhu

Need to test the below init script

https://github.com/CycloneDX/cdxgen/blob/master/utils.js#L5378

allprojects {
  afterEvaluate { project ->
    def taskName = "$taskName"
    def destinationDir = "$destination"
    def gradleProjectName = "$gradleProjectName"
    def gradleConfigurationName = "$gradleConfigurationName"

    if (project.name.equals(gradleProjectName)) {
      def compileDepsCopyTaskName = taskName + "_compileDeps"
      tasks.register(compileDepsCopyTaskName, Copy) {
        def selectedConfig = project.configurations.find { it.name.equals(gradleConfigurationName) }
        def componentIds = []
        if (selectedConfig != null) {
          componentIds = selectedConfig.incoming.resolutionResult.allDependencies.collect { it.selected.id }
        }
        def result = dependencies.createArtifactResolutionQuery()
                                 .forComponents(componentIds)
                                 .withArtifacts(JvmLibrary, SourcesArtifact)
                                 .execute()
        duplicatesStrategy = 'include'
        into destinationDir
        from result.resolvedComponents.collect { it.getArtifacts(SourcesArtifact).collect { it.file } }
      }
      def androidDepsCopyTaskName = taskName + "_androidDeps"
      tasks.register(androidDepsCopyTaskName, Copy) {
        duplicatesStrategy = 'include'
        into destinationDir
        from project.configurations.find { it.name.equals("androidApis") }
      }
      tasks.register(taskName, Copy) {
        dependsOn androidDepsCopyTaskName
        dependsOn compileDepsCopyTaskName
      }
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions