I am attempting to transform a series of ant files into a gradle plugin. One of the steps in the current build process is running a sass to css tool via ant’s “java” task. I figured it, at least for now, would be easiest to invoke the ant task from my grails plugin.
Right now i am doing this :
public class SassToCss extends ConventionTask {
private File sassDir;
@TaskAction
public void sassToCss() {
if (getSassDir() == null || !getSassDir().exists()) {
throw new InvalidUserDataException(“Please specify a valid sassDir”);
}
Java javaTask = new Java();
javaTask.setTaskName(“sass to css builder”);
javaTask.setClassname(“com.liferay.portal.tools.SassToCssBuilder”);
Set pluginClasspath = getProject().getBuildscript().getConfigurations()
.getByName(ScriptHandler.CLASSPATH_CONFIGURATION).resolve();
Project antProject = getAnt().getAntProject();
Path classPath = new Path(antProject);
for (File dep : pluginClasspath) {
classPath.createPathElement()
.setLocation(dep);
}
javaTask.setProject(antProject);
javaTask.setClasspath(classPath);
javaTask.setFork(true);
javaTask.setNewenvironment(true);
javaTask.createArg()
.setLine(“sass.dir=” + getSassDir());
javaTask.execute();
}
… }