private void addSourceDir(String srcDirPath) { this.sourceSet.getJava().srcDir(srcDirPath); DebugLogger.debug(() -> "add source dir : " + srcDirPath); }
@Override public void apply(Project project) { ParsecPluginExtension pluginExtension = project.getExtensions().create("parsec", ParsecPluginExtension.class); PathUtils pathUtils = new PathUtils(project, pluginExtension); TaskContainer tasks = project.getTasks(); // Create tasks (when applied as a plugin) ParsecInitTask initTask = tasks.create("parsec-init", ParsecInitTask.class); ParsecGenerateTask generateTask = tasks.create("parsec-generate", ParsecGenerateTask.class); // Make generate trigger init. generateTask.dependsOn(initTask); project.getPlugins().withType(JavaPlugin.class, plugin -> { SourceSet sourceSet = ((SourceSetContainer) project.getProperties().get("sourceSets")).getByName("main"); // Add ${buildDir}/generated-sources/java to sources sourceSet.getJava().srcDir(pathUtils.getGeneratedSourcesPath()); // Add ${buildDir}/generated-resources/parsec to resources sourceSet.getResources().srcDir(pathUtils.getGeneratedResourcesPath()); // Make compileJava trigger generate tasks.getByName(JavaPlugin.COMPILE_JAVA_TASK_NAME).dependsOn(generateTask); }); } }
@Override public void apply(Project project) { ParsecPluginExtension pluginExtension = project.getExtensions().create("parsec", ParsecPluginExtension.class); PathUtils pathUtils = new PathUtils(project, pluginExtension); TaskContainer tasks = project.getTasks(); // Create tasks (when applied as a plugin) ParsecInitTask initTask = tasks.create("parsec-init", ParsecInitTask.class); ParsecGenerateTask generateTask = tasks.create("parsec-generate", ParsecGenerateTask.class); // Make generate trigger init. generateTask.dependsOn(initTask); project.getPlugins().withType(JavaPlugin.class, plugin -> { SourceSet sourceSet = ((SourceSetContainer) project.getProperties().get("sourceSets")).getByName("main"); // Add ${buildDir}/generated-sources/java to sources sourceSet.getJava().srcDir(pathUtils.getGeneratedSourcesPath()); // Add ${buildDir}/generated-resources/parsec to resources sourceSet.getResources().srcDir(pathUtils.getGeneratedResourcesPath()); // Make compileJava trigger generate tasks.getByName(JavaPlugin.COMPILE_JAVA_TASK_NAME).dependsOn(generateTask); }); } }
private void assignJavaPluginDependencies() { Task compileJava = getProject().getTasks().getByName(JavaPlugin.COMPILE_JAVA_TASK_NAME); if (compileJava == null) return; compileJava.dependsOn(this); JavaPluginConvention javaPlugin = getProject().getConvention().getPlugin(JavaPluginConvention.class); javaPlugin.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME).getJava().srcDir(outputDir); }
private static void addGeneratedToMainSourceSet(Project subproj) { JavaPluginConvention javaPlugin = subproj.getConvention().findPlugin(JavaPluginConvention.class); javaPlugin.getSourceSets().getByName("main").getJava().srcDir(subproj.files(JAVA_GENERATED_SOURCE_DIRNAME)); }
rockerTask.sourceSet().getJava().srcDir( rockerTask.getOutputDir());
@Override public void apply(ProjectInternal project) { project.getPluginManager().apply(JavaPlugin.class); JavaScriptExtension ext = project.getExtensions().create( "javascript", JavaScriptExtension.class, project, project.getFileResolver() ); SourceSetContainer cont = (SourceSetContainer) project.getProperties().get("sourceSets"); cont.all((SourceSet ss) -> { String name = ss.getName(); File sources = project.file("src/" + name + "/javascript"); JavaScriptSourceSet jsss = ext.getSourceSetsContainer().maybeCreate(name); SourceDirectorySet sds = jsss.getJavaScript(); sds.srcDir(sources); Convention sourceSetConvention = (Convention) InvokerHelper.getProperty(ss, "convention"); sourceSetConvention.getPlugins().put("javascript", jsss); }); project.task("compileJavascript"); } }
@Override public void apply(Project project) { GenerateSchemaTask generateSchemaTask = project.getTasks().create(GenerateSchemaTask.NAME, GenerateSchemaTask.class); JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class); SourceSet mainSourceSet = javaConvention.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME); generateSchemaTask.setClasses(mainSourceSet.getOutput().getClassesDirs()); Jar jar = (Jar) project.getTasks().getByName("jar"); jar.dependsOn(generateSchemaTask); SchemaGenExtension extension = new SchemaGenExtension(); extension.project = project; project.getExtensions().add("jpaSchemaGen", extension); project.afterEvaluate(p -> { // jar dependency needs to be deferred as its depends on the plugin extension configuration if (extension.getContinuousMode()) { jar.from(generateSchemaTask.getOutputDirectory()); } // dependant configuration is deffered as it is set be the user through the extension Configuration schemaGenConfig = project.getConfigurations().getByName(extension.getConfiguration()); generateSchemaTask.dependsOn(schemaGenConfig); generateSchemaTask.setDependencies(schemaGenConfig); // add to resource dir in order to be detected by IDE mainSourceSet.getResources().srcDir(generateSchemaTask.getOutputDirectory()); }); }
public void execute(final SourceSet sourceSet) { FregeSourceSetDirectoryFactory factory = new FregeSourceSetDirectoryFactory((ProjectInternal) project, fileResolver); final DefaultFregeSourceSet fregeSourceSet = new DefaultFregeSourceSet(((DefaultSourceSet) sourceSet).getDisplayName(), factory); new DslObject(sourceSet).getConvention().getPlugins().put("frege", fregeSourceSet); final String defaultSourcePath = String.format("src/%s/frege", sourceSet.getName()); fregeSourceSet.getFrege().srcDir(defaultSourcePath); sourceSet.getResources().getFilter().exclude(new Spec<FileTreeElement>() { public boolean isSatisfiedBy(FileTreeElement element) { return fregeSourceSet.getFrege().contains(element.getFile()); } }); sourceSet.getAllJava().source(fregeSourceSet.getFrege()); sourceSet.getAllSource().source(fregeSourceSet.getFrege()); String compileTaskName = sourceSet.getCompileTaskName("frege"); FregeCompile compile = project.getTasks().create(compileTaskName, FregeCompile.class); compile.setModule(project.file(defaultSourcePath).getAbsolutePath()); javaBasePlugin.configureForSourceSet(sourceSet, compile); compile.getConventionMapping().map("fregepath", new Callable() { public Object call() throws Exception { return sourceSet.getCompileClasspath(); } }); compile.dependsOn(sourceSet.getCompileJavaTaskName()); compile.setDescription(String.format("Compiles the %s Frege source.", sourceSet.getName())); compile.setSource(fregeSourceSet.getFrege()); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(compileTaskName); sourceSet.compiledBy(compile); } });
private void configureEtaSourceSetConvention() { androidExtension.getSourceSets().all(sourceSet -> { project.getLogger().debug("Creating EtaSourceSet for source set " + sourceSet); final DefaultEtaSourceSet etaSourceSet = project.getObjects().newInstance (DefaultEtaSourceSet.class, null, ETA_SOURCE_SET_NAME, ((DefaultAndroidSourceSet) sourceSet).getDisplayName(), sourceDirectorySetFactory); ExtensionHelper.createConvention (sourceSet, ETA_SOURCE_SET_DSL_NAME, etaSourceSet); ExtensionHelper.createConvention(sourceSet, "eta", etaSourceSet); etaSourceSet.getEta().srcDir("src/" + sourceSet.getName() + "/eta"); }); }
javaMain.getJava().srcDir(task.getGeneratedSourceRoot());
sourceSet.getJava().srcDir(task.getOutputDir());
private void configureSourceSetDefaults(final JavaBasePlugin javaBasePlugin) { _project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all(sourceSet -> { GosuSourceSet gosuSourceSet = new DefaultGosuSourceSet(sourceSet.getName(), _sourceDirectorySetFactory); Convention sourceSetConvention = (Convention) InvokerHelper.getProperty(sourceSet, "convention"); sourceSetConvention.getPlugins().put("gosu", gosuSourceSet); gosuSourceSet.getGosu().srcDir("src/" + sourceSet.getName() + "/gosu"); sourceSet.getResources().getFilter().exclude(element -> gosuSourceSet.getGosu().contains(element.getFile())); sourceSet.getAllSource().source(gosuSourceSet.getGosu()); configureGosuCompile(javaBasePlugin, sourceSet, gosuSourceSet); }); }
private void configureSourceSetDefaults(final JavaBasePlugin javaBasePlugin) { _project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all( sourceSet -> { DefaultGosuSourceSet gosuSourceSet = new DefaultGosuSourceSet(((DefaultSourceSet) sourceSet).getDisplayName(), _fileResolver); new DslObject(sourceSet).getConvention().getPlugins().put("gosu", gosuSourceSet); gosuSourceSet.getGosu().srcDir("src/" + sourceSet.getName() + "/gosu"); sourceSet.getResources().getFilter().exclude( element -> { return gosuSourceSet.getGosu().contains(element.getFile()); }); sourceSet.getAllSource().source(gosuSourceSet.getGosu()); configureGosuCompile(javaBasePlugin, sourceSet, gosuSourceSet); }); }
new DslObject(sourceSet).getConvention().getPlugins().put("clojure", clojureSourceSet); clojureSourceSet.getClojure().srcDir(String.format("src/%s/clojure", sourceSet.getName()));
private void configureSourceSetDefaults(Project project, ClojureScriptExtension extension) { project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all((SourceSet sourceSet) -> { ClojureScriptSourceSet clojurescriptSourceSet = new DefaultClojureScriptSourceSet("clojurescript", objects); new DslObject(sourceSet).getConvention().getPlugins().put("clojurescript", clojurescriptSourceSet); clojurescriptSourceSet.getClojureScript().srcDir(String.format("src/%s/clojurescript", sourceSet.getName())); // in case the clojure source overlaps with the resources source sourceSet.getResources().getFilter().exclude(element -> clojurescriptSourceSet.getClojureScript().contains(element.getFile())); sourceSet.getAllSource().source(clojurescriptSourceSet.getClojureScript()); ClojureScriptBuild build = extension.getBuilds().create(sourceSet.getName()); build.getSourceSet().set(sourceSet); sourceSet.getOutput().dir(build.getOutputDir()); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(build.getTaskName("compile")); sourceSet.getOutput().dir(project.provider(() -> { if (build.isCompilerConfigured()) { return build.getOutputDir(); } else { return clojurescriptSourceSet.getClojureScript().getSourceDirectories(); } })); }); }
private void configureSourceSetDefaults(Project project, ClojureScriptExtension extension) { project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all((SourceSet sourceSet) -> { ClojureScriptSourceSet clojurescriptSourceSet = new DefaultClojureScriptSourceSet("clojurescript", sourceDirectorySetFactory); new DslObject(sourceSet).getConvention().getPlugins().put("clojurescript", clojurescriptSourceSet); clojurescriptSourceSet.getClojureScript().srcDir(String.format("src/%s/clojurescript", sourceSet.getName())); // in case the clojure source overlaps with the resources source sourceSet.getResources().getFilter().exclude(element -> clojurescriptSourceSet.getClojureScript().contains(element.getFile())); sourceSet.getAllSource().source(clojurescriptSourceSet.getClojureScript()); ClojureScriptBuild build = extension.getBuilds().create(sourceSet.getName()); build.getSourceSet().set(sourceSet); sourceSet.getOutput().dir(build.getOutputDir()); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(build.getTaskName("compile")); sourceSet.getOutput().dir(project.provider(() -> { if (build.isCompilerConfigured()) { return clojurescriptSourceSet.getClojureScript().getSourceDirectories(); } else { return build.getOutputDir(); } })); }); }
private void configureSourceSetDefaults(Project project, ClojureExtension extension) { project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all(sourceSet -> { ClojureSourceSet clojureSourceSet = new DefaultClojureSourceSet("clojure", objects); new DslObject(sourceSet).getConvention().getPlugins().put("clojure", clojureSourceSet); clojureSourceSet.getClojure().srcDir(String.format("src/%s/clojure", sourceSet.getName())); // in case the clojure source overlaps with the resources source sourceSet.getResources().getFilter().exclude(element -> clojureSourceSet.getClojure().contains(element.getFile())); sourceSet.getAllSource().source(clojureSourceSet.getClojure()); ClojureBuild build = extension.getBuilds().create(sourceSet.getName()); build.getSourceSet().set(sourceSet); ((DefaultSourceSetOutput) sourceSet.getOutput()).addClassesDir(() -> build.getOutputDir().get().getAsFile()); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(build.getTaskName("compile")); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(build.getTaskName("check")); sourceSet.getOutput().dir(project.provider(() -> { if (build.isCompilerConfigured()) { return build.getOutputDir(); } else { return clojureSourceSet.getClojure().getSourceDirectories(); } })); }); }
private void configureSourceSetDefaults(Project project, ClojureExtension extension) { project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all(sourceSet -> { ClojureSourceSet clojureSourceSet = new DefaultClojureSourceSet("clojure", sourceDirectorySetFactory); new DslObject(sourceSet).getConvention().getPlugins().put("clojure", clojureSourceSet); clojureSourceSet.getClojure().srcDir(String.format("src/%s/clojure", sourceSet.getName())); // in case the clojure source overlaps with the resources source sourceSet.getResources().getFilter().exclude(element -> clojureSourceSet.getClojure().contains(element.getFile())); sourceSet.getAllSource().source(clojureSourceSet.getClojure()); ClojureBuild build = extension.getBuilds().create(sourceSet.getName()); build.getSourceSet().set(sourceSet); ((DefaultSourceSetOutput) sourceSet.getOutput()).addClassesDir(() -> build.getOutputDir().get().getAsFile()); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(build.getTaskName("compile")); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(build.getTaskName("check")); sourceSet.getOutput().dir(project.provider(() -> { if (build.isCompilerConfigured()) { return clojureSourceSet.getClojure().getSourceDirectories(); } else { return build.getOutputDir(); } })); }); }
generated.getJava().srcDir(modelMap.getOutputDirectory()); compileJava.source(generated.getJava());