for ( File classesDir: sourceSet.getOutput().getClassesDirs() ) { final FileTree fileTree = project.fileTree( classesDir ); for ( File file : fileTree ) {
public File call() { try { return getMainOutput(project).getResourcesDir(); } catch (Exception e) { return null; } } });
private List<File> getClassesDirs(SourceSetOutput sourceSet) { // gradle 4.0 api //return sourceSet.getClassesDirs().getFiles(); List<File> files = new ArrayList<File>(sourceSet.getFiles()); files.remove(sourceSet.getResourcesDir()); return files; }
public ServiceLoaderTask() throws IOException { super.setDescription("Generate META-INF/services manifests for use with ServiceLoaders"); super.setGroup("Source Generation"); javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class); this.main = javaConvention.getSourceSets().findByName(SourceSet.MAIN_SOURCE_SET_NAME); SourceSetOutput mainOutput = main.getOutput(); classesOutput = mainOutput.getClassesDirs(); outputDirectory = new File(mainOutput.getResourcesDir(), "META-INF/services"); }
private static Collection<File> getOutputDirs(SourceSet sourceSet) { Collection<File> result; if (GradleVersion.version("4.0").compareTo(GradleVersion.current()) <= 0) { result = sourceSet.getOutput().getClassesDirs().getFiles(); } else { result = Collections.singletonList(sourceSet.getOutput().getClassesDir()); } return exists(result); }
private static void configureOutputDirectoryForSourceSet(final SourceSet sourceSet, final SourceDirectorySet sourceDirectorySet, AbstractCompile compile, final Project target) { final String sourceSetChildPath = "classes/" + sourceDirectorySet.getName() + "/" + sourceSet.getName(); sourceDirectorySet.setOutputDir(target.provider(() -> { if (sourceSet.getOutput().isLegacyLayout()) { return sourceSet.getOutput().getClassesDir(); } return new File(target.getBuildDir(), sourceSetChildPath); })); ((ConfigurableFileCollection) sourceSet.getOutput().getClassesDirs()).from(target.provider( sourceDirectorySet::getOutputDir)); compile.setDestinationDir(target.provider(sourceDirectorySet::getOutputDir)); }
private void addClassesAndResourcesDirs(Set<URL> extraURLs) throws IllegalAccessException, InvocationTargetException, MalformedURLException { JavaPluginConvention plugin = getProject().getConvention().getPlugin(JavaPluginConvention.class); for (SourceSet sourceSet : plugin.getSourceSets()) { try { @SuppressWarnings("JavaReflectionMemberAccess") Method getClassesDirs = SourceSetOutput.class.getMethod("getClassesDirs"); // use alternative method available in Gradle 4.0 FileCollection classesDirs = (FileCollection) getClassesDirs.invoke(sourceSet.getOutput()); for (File directory : classesDirs.getFiles()) { URL classesUrl = directory.toURI().toURL(); getLogger().debug("Adding directory to Classpath: " + classesUrl); extraURLs.add(classesUrl); } } catch (NoSuchMethodException e) { // use original method available in Gradle 3.x URL classesUrl = sourceSet.getOutput().getClassesDir().toURI().toURL(); getLogger().debug("Adding directory to Classpath: " + classesUrl); extraURLs.add(classesUrl); } URL resourcesUrl = sourceSet.getOutput().getResourcesDir().toURI().toURL(); getLogger().debug("Adding directory to Classpath: " + resourcesUrl); extraURLs.add(resourcesUrl); } }
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())); } } } }
@Override public FileCollection call() { return project.fileTree(sourceSet.getOutput().getClassesDir()).builtBy(sourceSet.getOutput()); } });
final DirectoryProperty buildDir = project.getLayout().getBuildDirectory(); if (sourceSet.getOutput().isLegacyLayout()) { return buildDir.dir(buildDir.getAsFile().get().toPath() .relativize(sourceSet.getOutput() .getClassesDir().toPath()) .toString()).get();
public void registerInSourceSets(String ...sourceSetNames) { if (sourceSetNames == null || sourceSetNames.length == 0) return; try { JavaPluginConvention javaPlugin = getProject().getConvention().getPlugin(JavaPluginConvention.class); if (javaPlugin == null) { throw new GradleException("You must apply the java plugin if you're using 'registerInSourceSets' functionality."); } for (String sourceSet : sourceSetNames) { javaPlugin.getSourceSets().getByName(sourceSet).getOutput().dir( Collections.singletonMap("builtBy", this), getOutDir() ); } } catch (Exception e) { throw new GradleException("You must apply the java plugin if you're using 'registerInSourceSets' functionality."); } }
Set<File> defaultOutputDirs = javaConvention.getSourceSets().getByName("main").getOutput().getFiles(); for (File f : defaultOutputDirs) { f.mkdirs();
SourceSet mainSourceSet = javaPluginConvention.getSourceSets().getByName(MAIN_SOURCE_SET_NAME); FileCollection classesOutputDirectories = mainSourceSet.getOutput().getClassesDirs(); Path resourcesOutputDirectory = mainSourceSet.getOutput().getResourcesDir().toPath(); FileCollection allFiles = mainSourceSet.getRuntimeClasspath(); FileCollection dependencyFiles =
private static Collection<File> getOutputDirs(SourceSet sourceSet) { Collection<File> result; if (GradleVersion.version("4.0").compareTo(GradleVersion.current()) <= 0) { result = sourceSet.getOutput().getClassesDirs().getFiles(); } else { result = Collections.singletonList(sourceSet.getOutput().getClassesDir()); } return exists(result); }
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())); } } } }
classes.add(output.getClassesDir());
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()); }); } }
Set<File> defaultOutputDirs = javaConvention.getSourceSets().getByName("main").getOutput().getFiles();
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())); } }
public File call() { try { return getMainOutput(project).getResourcesDir(); } catch (Exception e) { return null; } } });