All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.building.gradle_plugins.packed_dependencies.GeneratePackedDependenciesResourcesTask.kt Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.building.gradle_plugins.packed_dependencies

import name.remal.building.gradle_plugins.dsl.createParentDirectories
import name.remal.building.gradle_plugins.dsl.forceDeleteRecursively
import org.gradle.api.DefaultTask
import org.gradle.api.artifacts.Configuration
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import java.io.File

@CacheableTask
open class GeneratePackedDependenciesResourcesTask : DefaultTask() {

    init {
        description = "Generate packed dependencies resources"
        onlyIf { packedDependenciesConfiguration.allDependencies.isNotEmpty() }
    }

    @get:InputFiles
    lateinit var packedDependenciesConfiguration: Configuration

    @get:OutputDirectory
    val outputDir: File by lazy { project.buildDir.resolve("generated/packed-deps-resources") }

    @TaskAction
    protected fun generateResources() {
        outputDir.forceDeleteRecursively()

        packedDependenciesConfiguration.createPackedDependencyInfos(project).forEach { info ->
            val targetFile = outputDir.resolve(info.resourceName)
            targetFile.createParentDirectories()
            info.artifactFile.copyTo(targetFile)
        }

        didWork = true
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy