Search in sources :

Example 6 with SourceDirectorySet

use of org.gradle.api.file.SourceDirectorySet in project curiostack by curioswitch.

the class ProtobufPlugin method configureSourceSet.

private static SourceSetTasks configureSourceSet(String sourceSetName, Project project, ProtobufExtension extension) {
    NamedDomainObjectProvider<SourceDirectorySet> sources = extension.getSources().register(sourceSetName);
    Configuration protobufConfiguration = project.getConfigurations().create(SourceSetUtils.getConfigName(sourceSetName, "protobuf"), c -> {
        c.setVisible(false);
        c.setTransitive(true);
        c.setExtendsFrom(ImmutableList.of());
    });
    TaskProvider<ExtractProtosTask> extract = project.getTasks().register("extract" + SourceSetUtils.getTaskSuffix(sourceSetName) + "Proto", ExtractProtosTask.class, t -> {
        t.getFiles().from(protobufConfiguration);
        t.setDestDir(project.file("build/extracted-protos/" + sourceSetName));
    });
    TaskProvider<ExtractProtosTask> extractInclude = project.getTasks().register("extractInclude" + SourceSetUtils.getTaskSuffix(sourceSetName) + "Proto", ExtractProtosTask.class, t -> t.setDestDir(project.file("build/extracted-include-protos/" + sourceSetName)));
    TaskProvider<GenerateProtoTask> generateProto = project.getTasks().register("generate" + SourceSetUtils.getTaskSuffix(sourceSetName) + "Proto", GenerateProtoTask.class, sourceSetName, extension);
    // To ensure languages are added in order, we have to make sure this is hooked up eagerly.
    var languages = project.getObjects().listProperty(LanguageSettings.class).empty();
    extension.getLanguages().all(languages::add);
    generateProto.configure(t -> {
        t.dependsOn(extract, extractInclude);
        t.getSources().source(sources.get()).srcDir(extract.get().getDestDir());
        t.include(extractInclude.get().getDestDir());
        t.setLanguages(languages);
    });
    return ImmutableSourceSetTasks.builder().extractProtos(extract).extractIncludeProtos(extractInclude).generateProto(generateProto).build();
}
Also used : Configuration(org.gradle.api.artifacts.Configuration) SourceDirectorySet(org.gradle.api.file.SourceDirectorySet) ExtractProtosTask(org.curioswitch.gradle.protobuf.tasks.ExtractProtosTask) LanguageSettings(org.curioswitch.gradle.protobuf.ProtobufExtension.LanguageSettings) GenerateProtoTask(org.curioswitch.gradle.protobuf.tasks.GenerateProtoTask)

Example 7 with SourceDirectorySet

use of org.gradle.api.file.SourceDirectorySet in project gradle by gradle.

the class ScalaBasePlugin method configureSourceSetDefaults.

private static void configureSourceSetDefaults(final Project project, final SourceDirectorySetFactory sourceDirectorySetFactory) {
    final JavaBasePlugin javaPlugin = project.getPlugins().getPlugin(JavaBasePlugin.class);
    project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all(new Action<SourceSet>() {

        @Override
        public void execute(final SourceSet sourceSet) {
            String displayName = (String) InvokerHelper.invokeMethod(sourceSet, "getDisplayName", null);
            Convention sourceSetConvention = (Convention) InvokerHelper.getProperty(sourceSet, "convention");
            DefaultScalaSourceSet scalaSourceSet = new DefaultScalaSourceSet(displayName, sourceDirectorySetFactory);
            sourceSetConvention.getPlugins().put("scala", scalaSourceSet);
            final SourceDirectorySet scalaDirectorySet = scalaSourceSet.getScala();
            scalaDirectorySet.srcDir(new Callable<File>() {

                @Override
                public File call() throws Exception {
                    return project.file("src/" + sourceSet.getName() + "/scala");
                }
            });
            sourceSet.getAllJava().source(scalaDirectorySet);
            sourceSet.getAllSource().source(scalaDirectorySet);
            sourceSet.getResources().getFilter().exclude(new Spec<FileTreeElement>() {

                @Override
                public boolean isSatisfiedBy(FileTreeElement element) {
                    return scalaDirectorySet.contains(element.getFile());
                }
            });
            configureScalaCompile(project, javaPlugin, sourceSet);
        }
    });
}
Also used : SourceSet(org.gradle.api.tasks.SourceSet) ScalaSourceSet(org.gradle.api.tasks.ScalaSourceSet) DefaultScalaSourceSet(org.gradle.api.internal.tasks.DefaultScalaSourceSet) JavaPluginConvention(org.gradle.api.plugins.JavaPluginConvention) Convention(org.gradle.api.plugins.Convention) FileTreeElement(org.gradle.api.file.FileTreeElement) JavaBasePlugin(org.gradle.api.plugins.JavaBasePlugin) DefaultScalaSourceSet(org.gradle.api.internal.tasks.DefaultScalaSourceSet) SourceDirectorySet(org.gradle.api.file.SourceDirectorySet) Spec(org.gradle.api.specs.Spec) Callable(java.util.concurrent.Callable)

Example 8 with SourceDirectorySet

use of org.gradle.api.file.SourceDirectorySet in project spring-boot by spring-projects.

the class BootRun method sourceResources.

/**
 * Adds the {@link SourceDirectorySet#getSrcDirs() source directories} of the given
 * {@code sourceSet's} {@link SourceSet#getResources() resources} to the start of the
 * classpath in place of the {@link SourceSet#getOutput output's}
 * {@link SourceSetOutput#getResourcesDir() resources directory}.
 * @param sourceSet the source set
 */
public void sourceResources(SourceSet sourceSet) {
    File resourcesDir = sourceSet.getOutput().getResourcesDir();
    Set<File> srcDirs = sourceSet.getResources().getSrcDirs();
    setClasspath(getProject().files(srcDirs, getClasspath()).filter((file) -> !file.equals(resourcesDir)));
}
Also used : SourceSetOutput(org.gradle.api.tasks.SourceSetOutput) SourceDirectorySet(org.gradle.api.file.SourceDirectorySet) Property(org.gradle.api.provider.Property) Set(java.util.Set) JavaExec(org.gradle.api.tasks.JavaExec) Input(org.gradle.api.tasks.Input) JavaLauncher(org.gradle.jvm.toolchain.JavaLauncher) Method(java.lang.reflect.Method) File(java.io.File) DisableCachingByDefault(org.gradle.work.DisableCachingByDefault) SourceSet(org.gradle.api.tasks.SourceSet) File(java.io.File)

Example 9 with SourceDirectorySet

use of org.gradle.api.file.SourceDirectorySet in project gradle by gradle.

the class GroovyPlugin method configureGroovydoc.

private void configureGroovydoc(final Project project) {
    project.getTasks().register(GROOVYDOC_TASK_NAME, Groovydoc.class, groovyDoc -> {
        groovyDoc.setDescription("Generates Groovydoc API documentation for the main source code.");
        groovyDoc.setGroup(JavaBasePlugin.DOCUMENTATION_GROUP);
        SourceSet sourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
        groovyDoc.setClasspath(sourceSet.getOutput().plus(sourceSet.getCompileClasspath()));
        SourceDirectorySet groovySourceSet = sourceSet.getExtensions().getByType(GroovySourceDirectorySet.class);
        groovyDoc.setSource(groovySourceSet);
    });
}
Also used : SourceSet(org.gradle.api.tasks.SourceSet) GroovySourceDirectorySet(org.gradle.api.tasks.GroovySourceDirectorySet) SourceDirectorySet(org.gradle.api.file.SourceDirectorySet)

Example 10 with SourceDirectorySet

use of org.gradle.api.file.SourceDirectorySet in project gradle by gradle.

the class CodeNarcPlugin method configureForSourceSet.

@Override
protected void configureForSourceSet(final SourceSet sourceSet, CodeNarc task) {
    task.setDescription("Run CodeNarc analysis for " + sourceSet.getName() + " classes");
    SourceDirectorySet groovySourceSet = sourceSet.getExtensions().getByType(GroovySourceDirectorySet.class);
    task.setSource(groovySourceSet.matching(filter -> filter.include("**/*.groovy")));
}
Also used : SourceDirectorySet(org.gradle.api.file.SourceDirectorySet) SerializableLambdas.action(org.gradle.api.internal.lambdas.SerializableLambdas.action) ConventionMapping(org.gradle.api.internal.ConventionMapping) File(java.io.File) SourceSet(org.gradle.api.tasks.SourceSet) Configuration(org.gradle.api.artifacts.Configuration) ProviderFactory(org.gradle.api.provider.ProviderFactory) Provider(org.gradle.api.provider.Provider) ProjectLayout(org.gradle.api.file.ProjectLayout) GroovyBasePlugin(org.gradle.api.plugins.GroovyBasePlugin) GroovySourceDirectorySet(org.gradle.api.tasks.GroovySourceDirectorySet) RegularFile(org.gradle.api.file.RegularFile) AbstractCodeQualityPlugin(org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin) Plugin(org.gradle.api.Plugin) SourceDirectorySet(org.gradle.api.file.SourceDirectorySet) GroovySourceDirectorySet(org.gradle.api.tasks.GroovySourceDirectorySet)

Aggregations

SourceDirectorySet (org.gradle.api.file.SourceDirectorySet)13 SourceSet (org.gradle.api.tasks.SourceSet)6 File (java.io.File)5 Inject (javax.inject.Inject)4 Plugin (org.gradle.api.Plugin)4 FileCollection (org.gradle.api.file.FileCollection)4 GroovySourceDirectorySet (org.gradle.api.tasks.GroovySourceDirectorySet)4 Project (org.gradle.api.Project)3 Configuration (org.gradle.api.artifacts.Configuration)3 DirectoryProperty (org.gradle.api.file.DirectoryProperty)3 TaskProvider (org.gradle.api.tasks.TaskProvider)3 EtaOptions (com.typelead.gradle.eta.api.EtaOptions)2 DefaultEtaSourceSet (com.typelead.gradle.eta.internal.DefaultEtaSourceSet)2 EtaCompile (com.typelead.gradle.eta.tasks.EtaCompile)2 EtaInstallDependencies (com.typelead.gradle.eta.tasks.EtaInstallDependencies)2 EtaResolveDependencies (com.typelead.gradle.eta.tasks.EtaResolveDependencies)2 Action (org.gradle.api.Action)2 Task (org.gradle.api.Task)2 LibraryElements (org.gradle.api.attributes.LibraryElements)2 Directory (org.gradle.api.file.Directory)2