private DefaultGradleProject<LaunchableGradleTask> buildHierarchy(Project project) { List<DefaultGradleProject<LaunchableGradleTask>> children = new ArrayList<DefaultGradleProject<LaunchableGradleTask>>(); for (Project child : project.getChildProjects().values()) { children.add(buildHierarchy(child)); } DefaultGradleProject<LaunchableGradleTask> gradleProject = new DefaultGradleProject<LaunchableGradleTask>() .setPath(project.getPath()) .setName(project.getName()) .setDescription(project.getDescription()) .setBuildDirectory(project.getBuildDir()) .setProjectDirectory(project.getProjectDir()) .setChildren(children); gradleProject.getBuildScript().setSourceFile(project.getBuildFile()); gradleProject.setTasks(tasks(gradleProject, (TaskContainerInternal) project.getTasks())); for (DefaultGradleProject child : children) { child.setParent(gradleProject); } return gradleProject; }
private void findTasks( Project project, Map<String, LaunchableGradleTaskSelector> taskSelectors, Collection<String> visibleTasks) { for (Project child : project.getChildProjects().values()) { findTasks(child, taskSelectors, visibleTasks); } for (Task task : taskLister.listProjectTasks(project)) { // in the map, store a minimally populated LaunchableGradleTaskSelector that contains just the // description and the path // replace the LaunchableGradleTaskSelector stored in the map iff we come across a task with // the same name whose path has a smaller ordering // this way, for each task selector, its description will be the one from the selected task // with the 'smallest' path if (!taskSelectors.containsKey(task.getName())) { LaunchableGradleTaskSelector taskSelector = new LaunchableGradleTaskSelector() .setDescription(task.getDescription()) .setPath(task.getPath()); taskSelectors.put(task.getName(), taskSelector); } else { LaunchableGradleTaskSelector taskSelector = taskSelectors.get(task.getName()); if (hasPathWithLowerOrdering(task, taskSelector)) { taskSelector.setDescription(task.getDescription()).setPath(task.getPath()); } } // visible tasks are specified as those that have a non-empty group if (PublicTaskSpecification.INSTANCE.isSatisfiedBy(task)) { visibleTasks.add(task.getName()); } } }
private DefaultProjectOutcomes buildProjectOutput(Project project, ProjectOutcomes parent) { DefaultProjectOutcomes projectOutput = new DefaultProjectOutcomes( project.getName(), project.getPath(), project.getDescription(), project.getProjectDir(), getFileOutcomes(project), parent); for (Project child : project.getChildProjects().values()) { projectOutput.addChild(buildProjectOutput(child, projectOutput)); } return projectOutput; }
private void setProjectProperties(Project project) { addPropertiesToProject(project); for (Project childProject : project.getChildProjects().values()) { setProjectProperties(childProject); } }