You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
/* |
|
* Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. |
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. |
|
*/ |
|
|
|
import org.gradle.api.DefaultTask |
|
import org.gradle.api.file.ConfigurableFileCollection |
|
import org.gradle.api.file.RegularFileProperty |
|
import org.gradle.api.model.ObjectFactory |
|
import org.gradle.api.tasks.InputFiles |
|
import org.gradle.api.tasks.OutputFile |
|
import org.gradle.api.tasks.TaskAction |
|
import java.io.File |
|
import javax.inject.Inject |
|
|
|
abstract class SerializeClasspathTask @Inject constructor( |
|
objects: ObjectFactory |
|
) : DefaultTask() { |
|
@get:InputFiles |
|
val classpathFileCollection: ConfigurableFileCollection = objects.fileCollection() |
|
|
|
@get:OutputFile |
|
val outputFile: RegularFileProperty = objects.fileProperty() |
|
|
|
@TaskAction |
|
fun run() { |
|
val classpath = classpathFileCollection.files.joinToString(File.pathSeparator) { it.absolutePath } |
|
val outputFile = outputFile.get().asFile |
|
outputFile.parentFile.mkdirs() |
|
outputFile.writeText(classpath) |
|
} |
|
} |