use of org.gradle.api.tasks.ant.AntTarget in project gradle by gradle.
the class DefaultAntBuilder method importBuild.
public void importBuild(Object antBuildFile, Transformer<? extends String, ? super String> taskNamer) {
File file = gradleProject.file(antBuildFile);
final File baseDir = file.getParentFile();
Set<String> existingAntTargets = new HashSet<String>(getAntProject().getTargets().keySet());
File oldBaseDir = getAntProject().getBaseDir();
getAntProject().setBaseDir(baseDir);
try {
getAntProject().setUserProperty(MagicNames.ANT_FILE, file.getAbsolutePath());
ProjectHelper.configureProject(getAntProject(), file);
} catch (Exception e) {
throw new GradleException("Could not import Ant build file '" + String.valueOf(file) + "'.", e);
} finally {
getAntProject().setBaseDir(oldBaseDir);
}
// Chuck away the implicit target. It has already been executed
getAntProject().getTargets().remove("");
// Add an adapter for each newly added target
Set<String> newAntTargets = new HashSet<String>(getAntProject().getTargets().keySet());
newAntTargets.removeAll(existingAntTargets);
for (String name : newAntTargets) {
final Target target = getAntProject().getTargets().get(name);
String taskName = taskNamer.transform(target.getName());
final AntTarget task = gradleProject.getTasks().create(taskName, AntTarget.class);
configureTask(target, task, baseDir, taskNamer);
}
}
Aggregations