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

cc.catalysts.gradle.plugins.gwt.CompileGwtTask.groovy Maven / Gradle / Ivy

The newest version!
package cc.catalysts.gradle.plugins.gwt

import cc.catalysts.gradle.utils.TCLogger
import org.gradle.api.DefaultTask
import org.gradle.api.internal.file.FileResolver
import org.gradle.api.tasks.TaskAction
import org.gradle.process.internal.DefaultJavaExecAction
import org.gradle.process.internal.JavaExecAction

/**
 * @author Catalysts GmbH, www.catalysts.cc
 */
class CompileGwtTask extends DefaultTask {
    private static final String GWT_COMPILE = "gwt-compile"
    private TCLogger log = new TCLogger(project, logger)

    CompileGwtTask() {
        dependsOn "cleanGwt"
    }

    @TaskAction
    def compile() {
        log.openBlock(GWT_COMPILE)
        FileResolver fileResolver = getServices().get(FileResolver.class)

        for (module in project.gwt.modules) {
            log.lifecycle '\n' + ('#' * 50) + '\n'
            log.lifecycle "cat-gwt: Compiling ${module.name} with GWT ${project.gwtVersion} using the following jars:"


            project.ext.classpath_list = [
                    project.configurations.gwtCompile,
                    project.configurations.gwtBuild
            ]

            def printedPath = new HashSet()
            project.configurations.gwtCompile.each {
                File file ->
                    if (!printedPath.contains(file.name)) {
                        log.lifecycle '    ' + file.name
                        printedPath.add(file.name)
                    }
            }
            project.configurations.gwtBuild.each {
                File file ->
                    if (!printedPath.contains(file.name)) {
                        log.lifecycle '    ' + file.name
                        printedPath.add(file.name)
                    }
            }

            log.lifecycle ''

            JavaExecAction javaExec = new DefaultJavaExecAction(fileResolver);

            javaExec.setMain('com.google.gwt.dev.Compiler')
            javaExec.classpath(project.ext.classpath_list)
            javaExec.args(module.modulename,
                    '-war', project.gwt.warFolder,
                    '-localWorkers', project.gwt.workers,
                    '-style', project.gwt.style)

            javaExec.execute();
        }
        log.closeBlock(GWT_COMPILE)
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy