@@ -216,40 +216,7 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) {
216216 | }
217217 | }
218218 | }
219- | task $scipJavaDependencies {
220- | def depsOut = java.nio.file.Paths.get(
221- | java.net.URI.create(' ${dependenciesPath.toUri}'))
222- | doLast {
223- | java.nio.file.Files.createDirectories(depsOut.getParent())
224- | tasks.withType(JavaCompile) {
225- | try {
226- | configurations.each { config ->
227- | def artifactType = org.gradle.api.attributes.Attribute.of("artifactType", String.class)
228- | def attributeType = "jar"
229- | if (config.canBeResolved) {
230- | def artifacts = config.incoming.artifactView { view ->
231- | view.lenient = true
232- | view.attributes { container ->
233- | container.attribute(artifactType, attributeType)
234- | }
235- | }.artifacts
236- | def lines = artifacts.collect {
237- | def id = it.id.componentIdentifier
238- | return " $$ id.group\t $$ id.module\t $$ id.version\t $$ it.file"
239- | }
240- | java.nio.file.Files.write(
241- | depsOut,
242- | lines.unique(false),
243- | java.nio.file.StandardOpenOption.APPEND,
244- | java.nio.file.StandardOpenOption.CREATE)
245- | }
246- | }
247- | } catch (Exception e) {
248- | // Ignore errors.
249- | }
250- | }
251- | }
252- | }
219+ | task $scipJavaDependencies(type: WriteDependencies)
253220 |}
254221 |def scipJavaSemanticdbScalacVersions(scalaVersion) {
255222 | ${semanticdbScalacGroovySyntax()}[scalaVersion]
@@ -273,6 +240,35 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) {
273240 | }
274241 | return null
275242 |}
243+ |
244+ |class WriteDependencies extends DefaultTask {
245+ | @TaskAction
246+ | void printResolvedDependencies() {
247+ | def depsOut = java.nio.file.Paths.get(
248+ | java.net.URI.create(' ${dependenciesPath.toUri}'))
249+ | java.nio.file.Files.createDirectories(depsOut.getParent())
250+ | def configurations = project.configurations
251+ | configurations.each { configuration ->
252+ | if (!configuration.canBeResolved || java.lang.reflect.Modifier.isAbstract(configuration.getClass().getModifiers())) {
253+ | return
254+ | }
255+ | try {
256+ | def resolvedConfiguration = configuration.resolvedConfiguration
257+ | def lines = resolvedConfiguration.resolvedArtifacts.collect { artifact ->
258+ | return " $$ artifact.moduleVersion.id.group\t $$ artifact.moduleVersion.id.name\t $$ artifact.moduleVersion.id.version\t $$ artifact.file.absolutePath"
259+ | }
260+ | java.nio.file.Files.write(
261+ | depsOut,
262+ | lines.unique(false),
263+ | java.nio.file.StandardOpenOption.APPEND,
264+ | java.nio.file.StandardOpenOption.CREATE)
265+ | } catch (Exception e) {
266+ | println "Skipping configuration ' $$ configuration.name' due to resolution failure: $$ e.message"
267+ | return
268+ | }
269+ | }
270+ | }
271+ |}
276272 | """ .stripMargin
277273 Files .write(
278274 tmp.resolve(" init-script.gradle" ),
0 commit comments