use of org.gradle.api.tasks.compile.GroovyCompile in project gradle-apt-plugin by tbroyer.
the class AptPlugin method apply.
@Override
public void apply(final Project project) {
configureCompileTasks(project, JavaCompile.class, new GetCompileOptions<JavaCompile>() {
@Override
public CompileOptions getCompileOptions(JavaCompile task) {
return task.getOptions();
}
});
configureCompileTasks(project, GroovyCompile.class, new GetCompileOptions<GroovyCompile>() {
@Override
public CompileOptions getCompileOptions(GroovyCompile task) {
return task.getOptions();
}
});
project.getPlugins().withType(JavaBasePlugin.class, new Action<JavaBasePlugin>() {
@Override
public void execute(JavaBasePlugin javaBasePlugin) {
final JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class);
javaConvention.getSourceSets().all(new Action<SourceSet>() {
@Override
public void execute(final SourceSet sourceSet) {
AptSourceSetConvention convention = IMPL.createAptSourceSetConvention(project, sourceSet);
new DslObject(sourceSet).getConvention().getPlugins().put(PLUGIN_ID, convention);
AptSourceSetOutputConvention outputConvention = new AptSourceSetOutputConvention(project);
outputConvention.setGeneratedSourcesDir(new File(project.getBuildDir(), "generated/source/apt/" + sourceSet.getName()));
new DslObject(sourceSet.getOutput()).getConvention().getPlugins().put(PLUGIN_ID, outputConvention);
ensureConfigurations(project, sourceSet, convention);
configureCompileTaskForSourceSet(project, sourceSet, sourceSet.getCompileJavaTaskName(), JavaCompile.class, new GetCompileOptions<JavaCompile>() {
@Override
public CompileOptions getCompileOptions(JavaCompile task) {
return task.getOptions();
}
});
}
});
}
});
project.getPlugins().withType(GroovyBasePlugin.class, new Action<GroovyBasePlugin>() {
@Override
public void execute(GroovyBasePlugin groovyBasePlugin) {
JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class);
javaConvention.getSourceSets().all(new Action<SourceSet>() {
@Override
public void execute(SourceSet sourceSet) {
AptSourceSetConvention convention = new DslObject(sourceSet).getConvention().getPlugin(AptSourceSetConvention.class);
configureCompileTaskForSourceSet(project, sourceSet, sourceSet.getCompileTaskName("groovy"), GroovyCompile.class, new GetCompileOptions<GroovyCompile>() {
@Override
public CompileOptions getCompileOptions(GroovyCompile task) {
return task.getOptions();
}
});
}
});
}
});
}
use of org.gradle.api.tasks.compile.GroovyCompile in project gradle by gradle.
the class GroovyBasePlugin method configureSourceSetDefaults.
@SuppressWarnings("deprecation")
private void configureSourceSetDefaults() {
javaPluginExtension().getSourceSets().all(sourceSet -> {
final DefaultGroovySourceSet groovySourceSet = new DefaultGroovySourceSet("groovy", ((DefaultSourceSet) sourceSet).getDisplayName(), objectFactory);
addSourceSetExtension(sourceSet, groovySourceSet);
final SourceDirectorySet groovySource = groovySourceSet.getGroovy();
groovySource.srcDir("src/" + sourceSet.getName() + "/groovy");
// Explicitly capture only a FileCollection in the lambda below for compatibility with configuration-cache.
@SuppressWarnings("UnnecessaryLocalVariable") final FileCollection groovySourceFiles = groovySource;
sourceSet.getResources().getFilter().exclude(spec(element -> groovySourceFiles.contains(element.getFile())));
sourceSet.getAllJava().source(groovySource);
sourceSet.getAllSource().source(groovySource);
final TaskProvider<GroovyCompile> compileTask = project.getTasks().register(sourceSet.getCompileTaskName("groovy"), GroovyCompile.class, compile -> {
JvmPluginsHelper.configureForSourceSet(sourceSet, groovySource, compile, compile.getOptions(), project);
compile.setDescription("Compiles the " + sourceSet.getName() + " Groovy source.");
compile.setSource(groovySource);
compile.getJavaLauncher().convention(getToolchainTool(project, JavaToolchainService::launcherFor));
compile.getGroovyOptions().getDisabledGlobalASTTransformations().convention(Sets.newHashSet("groovy.grape.GrabAnnotationTransformation"));
});
String compileClasspathConfigurationName = sourceSet.getCompileClasspathConfigurationName();
JvmPluginsHelper.configureOutputDirectoryForSourceSet(sourceSet, groovySource, project, compileTask, compileTask.map(GroovyCompile::getOptions));
useDefaultTargetPlatformInference(compileTask, compileClasspathConfigurationName);
useDefaultTargetPlatformInference(compileTask, sourceSet.getRuntimeClasspathConfigurationName());
// TODO: `classes` should be a little more tied to the classesDirs for a SourceSet so every plugin
// doesn't need to do this.
project.getTasks().named(sourceSet.getClassesTaskName(), task -> task.dependsOn(compileTask));
// Explain that Groovy, for compile, also needs the resources (#9872)
project.getConfigurations().getByName(compileClasspathConfigurationName).attributes(attrs -> attrs.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.getObjects().named(LibraryElements.class, LibraryElements.CLASSES_AND_RESOURCES)));
});
}
Aggregations