@Override public void execute(Task task) { project.getLogger().debug( "Starting Hibernate enhancement on SourceSet.{}", sourceSet.getName() ); final ClassLoader classLoader = toClassLoader( sourceSet.getRuntimeClasspath() ); for ( File classesDir: sourceSet.getOutput().getClassesDirs() ) { final FileTree fileTree = project.fileTree( classesDir ); for ( File file : fileTree ) {
public File javaSrc() { SourceSet sourceSet = sourceSet(project); // source java return sourceSet.getJava().getSrcDirs().iterator().next(); }
private Set<File> getMainJavaResourceDirs() { return sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getResources().getSrcDirs(); }
public Set<File> sources() { SourceSet sourceSet = sourceSet(project); // conf & public Set<File> src = new LinkedHashSet<>(sourceSet.getResources().getSrcDirs()); // source java: always add parent file: should be src/main sourceSet.getJava().getSrcDirs().forEach(f -> src.add(f.getParentFile())); return src; }
public Set<File> classpath() { SourceSet sourceSet = sourceSet(project); // conf & public Set<File> cp = new LinkedHashSet<>(sourceSet.getResources().getSrcDirs()); // classes/main, resources/main + jars cp.addAll(sourceSet.getRuntimeClasspath().getFiles()); // provided? Configuration provided = project.getConfigurations().findByName("provided"); if (provided != null) { cp.addAll(provided.getFiles()); } return cp; }
new DslObject(sourceSet).getConvention().getPlugins().put("clojure", clojureSourceSet); clojureSourceSet.getClojure().srcDir(String.format("src/%s/clojure", sourceSet.getName())); sourceSet.getResources().getFilter().exclude(element -> clojureSourceSet.getClojure().contains(element.getFile())); sourceSet.getAllSource().source(clojureSourceSet.getClojure()); String compileTaskName = sourceSet.getCompileTaskName("clojure"); ClojureCompile compile = project.getTasks().create(compileTaskName, ClojureCompile.class); compile.setDescription(String.format("Compiles the %s Clojure source.", sourceSet.getName())); compile.setSource(clojureSourceSet.getClojure()); return sourceSet.getCompileClasspath() .plus(project.files(sourceSet.getJava().getOutputDir())) .plus(project.files(sourceSet.getOutput().getResourcesDir())); }); compile.dependsOn(project.getTasks().getByName(sourceSet.getCompileJavaTaskName())); compile.dependsOn(project.getTasks().getByName(sourceSet.getProcessResourcesTaskName())); project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(compile); });
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 createWarExploded(DevOption sdmOption) throws IOException { WarPluginConvention warConvention = getProject().getConvention().getPlugin(WarPluginConvention.class); JavaPluginConvention javaConvention = getProject().getConvention().getPlugin(JavaPluginConvention.class); File warDir = sdmOption.getWar(); ResourceUtils.copyDirectory(warConvention.getWebAppDir(), warDir); if (Boolean.TRUE.equals(sdmOption.getNoServer())) { File webInfDir = ResourceUtils.ensureDir(new File(warDir, "WEB-INF")); ResourceUtils.deleteDirectory(webInfDir); } else { SourceSet mainSourceSet = javaConvention.getSourceSets().getByName("main"); File classesDir = ResourceUtils.ensureDir(new File(warDir, "WEB-INF/classes")); for (File file : mainSourceSet.getResources().getSrcDirs()) { ResourceUtils.copyDirectory(file, classesDir); } for (File f: mainSourceSet.getOutput().getClassesDirs()) { ResourceUtils.copyDirectory(f, classesDir); } for (File file : mainSourceSet.getOutput().getFiles()) { if (file.exists() && file.isFile()) { ResourceUtils.copy(file, new File(classesDir, file.getName())); } } File libDir = ResourceUtils.ensureDir(new File(warDir, "WEB-INF/lib")); for (File file : mainSourceSet.getRuntimeClasspath()) { if (file.exists() && file.isFile()) { ResourceUtils.copy(file, new File(libDir, file.getName())); } } } }
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); }); }
@Override public File call() throws Exception { SourceSetOutput sourceSetOutput = sourceSet.getOutput(); return new File( sourceSetOutput.getResourcesDir(), "META-INF/resources"); }
private void configureClasspathScan(SourceSet sourceSet) { String taskName = sourceSet.getTaskName("scan", "Classpath"); File baseDir = new File(this.project.getBuildDir(), "joinfaces/" + sourceSet.getName()); ClasspathScan scanTask = this.project.getTasks().create(taskName, ClasspathScan.class); scanTask.getDestinationDir().set(baseDir); this.project.afterEvaluate(p -> { scanTask.getClasspath().from(p.getConfigurations().getByName(sourceSet.getRuntimeClasspathConfigurationName())); scanTask.getClasspath().from(p.getTasks().getByName(sourceSet.getCompileJavaTaskName())); p.getPlugins().withType(GroovyPlugin.class, groovyPlugin -> scanTask.getClasspath().from(p.getTasks().getByName(sourceSet.getCompileTaskName("groovy"))) ); p.getPlugins().withType(ScalaBasePlugin.class, scalaBasePlugin -> scanTask.getClasspath().from(p.getTasks().getByName(sourceSet.getCompileTaskName("scala"))) ); if (p.getPlugins().hasPlugin("kotlin") || p.getPlugins().hasPlugin("org.jetbrains.kotlin.jvm")) { scanTask.getClasspath().from(p.getTasks().getByName(sourceSet.getCompileTaskName("kotlin"))); } sourceSet.getOutput().dir(Collections.singletonMap("builtBy", scanTask), scanTask.getDestinationDir()); }); } }
private void apply(@Nonnull final Project project, @Nonnull SourceSet sourceSet, @Nonnull final VelocityPluginExtension extension) { final VelocitySourceSet velocitySourceSet = new VelocitySourceSet(sourceSet.getName(), fileResolver); new DslObject(sourceSet).getConvention().getPlugins().put("velocity", velocitySourceSet); final String srcDir = String.format("src/%s/velocity", sourceSet.getName()); velocitySourceSet.getVelocity().srcDir(srcDir); sourceSet.getAllSource().source(velocitySourceSet.getVelocity()); final String velocityTaskName = sourceSet.getTaskName("process", "Velocity"); VelocityTask velocityTask = project.getTasks().create(velocityTaskName, VelocityTask.class, new Action<VelocityTask>() { @Override project.getBuildDir(), sourceSet.getName()); File outputDir = new File(outputDirectoryName); velocityTask.setOutputDir(outputDir); sourceSet.getJava().srcDir(outputDir); project.getTasks().getByName(sourceSet.getCompileJavaTaskName()).dependsOn(velocityTask);
private void configureDev(Project project, JavaPluginConvention javaConvention) { SourceSet main = javaConvention.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME); SourceSet test = javaConvention.getSourceSets().getByName(SourceSet.TEST_SOURCE_SET_NAME); SourceSet dev = javaConvention.getSourceSets().create(DEV_SOURCE_SET_NAME); dev.setCompileClasspath(project.files(test.getOutput(), main.getOutput(), project.getConfigurations().getByName(dev.getCompileClasspathConfigurationName()))); dev.setRuntimeClasspath(project.files(dev.getAllSource().getSourceDirectories(), test.getAllSource().getSourceDirectories(), main.getAllSource().getSourceDirectories(), project.getConfigurations().getByName(dev.getRuntimeClasspathConfigurationName()))); Stream.<Function<SourceSet, String>>of(SourceSet::getCompileConfigurationName, SourceSet::getImplementationConfigurationName, SourceSet::getRuntimeConfigurationName, SourceSet::getRuntimeOnlyConfigurationName).forEach(getter -> { Configuration devConf = project.getConfigurations().getByName(getter.apply(dev)); Configuration testConf = project.getConfigurations().getByName(getter.apply(test)); devConf.extendsFrom(testConf); }); project.getTasks().create("clojureRepl", ClojureNRepl.class, task -> { task.setGroup("run"); task.setDescription("Starts an nREPL server."); task.setClasspath(dev.getRuntimeClasspath()); }); } }
project.getConfigurations().getByName(sourceSet.getCompileOnlyConfigurationName()).extendsFrom(lombokConfiguration); project.getConfigurations().getByName(sourceSet.getAnnotationProcessorConfigurationName()).extendsFrom(lombokConfiguration); TaskProvider<Delombok> delombokTaskProvider = project.getTasks().register(sourceSet.getTaskName("delombok", ""), Delombok.class, delombok -> { delombok.setDescription("Runs delombok on the " + sourceSet.getName() + " source-set"); delombok.getTarget().set(project.getLayout().getBuildDirectory().dir("delombok/" + sourceSet.getName())); }); sourceSet.getExtensions().add("delombokTask", delombokTaskProvider); TaskProvider<JavaCompile> compileTaskProvider = project.getTasks().named(sourceSet.getCompileJavaTaskName(), JavaCompile.class, compileJava -> { compileJava.dependsOn(generateLombokConfig); compileJava.getOptions().getCompilerArgs().add("-Xlint:-processing"); delombokTaskProvider.configure(delombok -> { delombok.getEncoding().set(compileTaskProvider.get().getOptions().getEncoding()); delombok.getClasspath().from(sourceSet.getCompileClasspath()); delombok.getInput().from(sourceSet.getAllJava().getSourceDirectories()); }); }); javadoc.setSource(mainSourceSet.getExtensions().getByName("delombokTask")); });
private void addSourceSet(ConfigurableFileCollection sources, Project project, String sourceSet) { JavaPluginConvention javaConvention = project.getConvention().findPlugin(JavaPluginConvention.class); if (javaConvention != null) { SourceSet mainSourceSet = javaConvention.getSourceSets().getByName(sourceSet); sources .from(project.files(mainSourceSet.getOutput().getResourcesDir())) .from(project.files(mainSourceSet.getOutput().getClassesDirs())) .from(project.files(mainSourceSet.getAllSource().getSrcDirs())); } }
@Override void configure(Task task) { super.configure(task); Task prepareMonitorEnvTask = project.getTasks().findByName(AzurePlugin.PREPARE_MONITOR_ENV_TASK); Test t = (Test)task; t.setDescription("Test execution of the azureTest source set against production deployment."); t.dependsOn(prepareMonitorEnvTask); t.setClasspath(sourceSet.getRuntimeClasspath()); t.setTestClassesDirs(sourceSet.getOutput().getClassesDirs()); t.systemProperty("testEnvPath", azure.getMonitorEnvFile().get().getAsFile().getAbsolutePath()); t.setBinResultsDir(new File(project.getBuildDir(), "monitor-test-results/binary/test")); t.getReports().getHtml().setDestination(new File(project.getBuildDir(), "reports/monitor-test-results" )); t.getReports().getJunitXml().setDestination(new File(project.getBuildDir(), "monitor-test-results" )); } }
protected void createSourcesJars(final Project project) { final JavaPluginConvention javaPluginConvention = project.getConvention().getPlugin(JavaPluginConvention.class); Task sourcesJar = project.getTasks().create("sourcesJar", Jar.class, jar -> { jar.setDescription("Creates a jar with the sources"); jar.setClassifier("sources"); jar.from(javaPluginConvention.getSourceSets().getByName("main").getAllSource()); }); Task javadocJar = project.getTasks().create("javadocJar", Jar.class, jar -> { jar.setDescription("Creates a javadoc jar"); jar.setClassifier("javadoc"); Javadoc javadoc = (Javadoc) project.getTasks().getByName(JavaPlugin.JAVADOC_TASK_NAME); jar.from(javadoc.getDestinationDir()); jar.dependsOn(javadoc); }); Task testsJar = project.getTasks().create("testsJar", Jar.class, jar -> { jar.setDescription("Creates a jar containing all the source and classes for the tests"); jar.setClassifier("tests"); SourceSet test = javaPluginConvention.getSourceSets().getByName("test"); jar.from(test.getAllJava()); jar.from(test.getOutput()); }); project.getArtifacts().add(Dependency.ARCHIVES_CONFIGURATION, sourcesJar); project.getArtifacts().add(Dependency.ARCHIVES_CONFIGURATION, javadocJar); project.getArtifacts().add(Dependency.ARCHIVES_CONFIGURATION, testsJar); }
private void prepareSourceSet(Project project) { ConfigurationContainer confs = project.getConfigurations(); JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class); azureTestSourceSet = javaConvention.getSourceSets().create(AZURE_TEST_SOURCE_SET); azureTestSourceSet.java(x -> { }); azureTestSourceSet.resources(x -> { }); azureTestSourceSet.setCompileClasspath(project.files(confs.getByName(AZURE_TEST_COMPILE_CONF))); azureTestSourceSet.setRuntimeClasspath( project.files(azureTestSourceSet.getOutput(), azureTestSourceSet.getCompileClasspath(), confs.getByName(AZURE_TEST_RUNTIME_CONF))); }
public static final String getSourceSetFormatted(SourceSet sourceSet, String template) { String name = sourceSet.getName(); name = name.substring(0, 1).toUpperCase() + name.substring(1); // convert 1st char to upper case. return String.format(template, name); } }
private void configureGosuCompile(JavaBasePlugin javaPlugin, SourceSet sourceSet, GosuSourceSet gosuSourceSet) { String compileTaskName = sourceSet.getCompileTaskName("gosu"); GosuCompile gosuCompile = _project.getTasks().create(compileTaskName, GosuCompile.class); javaPlugin.configureForSourceSet(sourceSet, gosuCompile); gosuCompile.dependsOn(sourceSet.getCompileJavaTaskName()); gosuCompile.setDescription("Compiles the " + sourceSet.getName() + " Gosu source"); gosuCompile.setSource(gosuSourceSet.getGosu()); gosuCompile.setSourceRoots(gosuSourceSet.getGosu().getSrcDirs()); _project.getTasks().getByName(sourceSet.getClassesTaskName()).dependsOn(compileTaskName); }