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

com.github.jengelman.gradle.plugins.shadow.ShadowPlugin.groovy Maven / Gradle / Ivy

package com.github.jengelman.gradle.plugins.shadow

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.ApplicationPlugin
import org.gradle.api.plugins.JavaPlugin

import static java.util.Objects.nonNull

class ShadowPlugin implements Plugin {

    @Override
    void apply(Project project) {
        project.with {
            plugins.apply(ShadowBasePlugin)
            plugins.withType(JavaPlugin) {
                plugins.apply(ShadowJavaPlugin)
            }
            plugins.withType(ApplicationPlugin) {
                plugins.apply(ShadowApplicationPlugin)
            }

            rootProject.plugins.withId('com.gradle.enterprise') {
                rootProject.buildScan.buildFinished {
                    def shadowTasks = tasks.withType(ShadowJar)
                    shadowTasks.each { task ->
                        if (task.didWork) {
                            task.stats.buildScanData.each { k, v ->
                                rootProject.buildScan.value "shadow.${task.path}.${k}", v.toString()
                            }
                            rootProject.buildScan.value "shadow.${task.path}.configurations", task.configurations*.name.join(", ")
                        }
                    }
                }
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy