/** * Configure Eclipse project * * @param eclipseModel Eclipse model to configure */ @Mutate public void configureEclipseProject(EclipseModel eclipseModel) { EclipseProject eclipseProject = eclipseModel.getProject(); eclipseProject.natures(CHECKSTYLE_NATURE); } }
/** * Configure Eclipse project * * @param eclipseModel Eclipse model to configure */ @Mutate public void configureEclipseProject(EclipseModel eclipseModel) { EclipseProject eclipseProject = eclipseModel.getProject(); eclipseProject.natures(CHECKSTYLE_NATURE); } }
} else if (eclipseModel.getProject().getReferencedProjects().contains(path.substring(1))) { eclipseModel.getProject().getReferencedProjects().forEach(addProject);
@SuppressWarnings("unchecked") @Override protected void applyOnce(Project project) { extension = project.getExtensions().create(ResourceFiltersExtension.NAME, ResourceFiltersExtension.class); EclipseProjectPlugin.modifyEclipseProject(project, eclipseModel -> { eclipseModel.getProject().getFile().getXmlTransformer().addAction(xmlProvider -> { Node rootNode = (Node) xmlProvider.asNode(); // remove the old filteredResources List<Node> toRemove = ((List<Node>) rootNode.children()).stream() .filter(Objects::nonNull) .filter(node -> FILTERED_RESOURCES.equals(node.name())) .collect(Collectors.toList()); toRemove.forEach(rootNode::remove); // now add ours Node filteredResources = rootNode.appendNode(FILTERED_RESOURCES); for (ResourceFilter toExclude : extension.filters) { toExclude.appendToFilteredResources(filteredResources); } }); }); }
@Override public void execute(final Project p) { final PutnamiExtension extention = (PutnamiExtension) project.getExtensions() .getByName(PutnamiExtension.PWT_EXTENSION); if (p.getPlugins().hasPlugin("eclipse") && extention.isGooglePluginEclipse()) { final EclipseModel eclipseModel = project.getExtensions().getByType(EclipseModel.class); eclipseModel.getProject().natures(ECLIPSE_NATURE); eclipseModel.getProject().buildCommand(ECLIPSE_BUILDER_PROJECT_VALIDATOR); project.getPlugins().withType(PwtPlugin.class, new Action<PwtPlugin>() { @Override public void execute(PwtPlugin warPlugin) { eclipseModel.getProject().buildCommand(ECLIPSE_BUILDER_WEBAPP_VALIDATOR); } }); } } });
@Override public void execute(GwtWarPlugin warPlugin) { logger.debug("Configuring eclipse model GWT web application settings"); eclipseModel.getProject().buildCommand(ECLIPSE_BUILDER_WEBAPP_VALIDATOR); project.getTasks().getByName(EclipsePlugin.getECLIPSE_TASK_NAME()).dependsOn(GwtWarPlugin.TASK_WAR_TEMPLATE); project.getTasks().getByName(getAssociatedCleanTask(EclipsePlugin.getECLIPSE_TASK_NAME())).dependsOn(getAssociatedCleanTask(GwtWarPlugin.TASK_WAR_TEMPLATE)); final GdtOptions gdtExtension = ((ExtensionAware)eclipseExtension).getExtensions().create("gdt", GdtOptionsImpl.class); configureGdtExtension(extension, gdtExtension); configureGenerateGdt(gdtExtension); GenerateGdt generateGdt = project.getTasks().create(GENERATE_GDT_TASK, GenerateGdt.class); generateGdt.setSettingsFile(project.file(".settings/com.google.gdt.eclipse.core.prefs")); project.getTasks().getByName(EclipsePlugin.getECLIPSE_TASK_NAME()).dependsOn(generateGdt); project.afterEvaluate(new Action<Project>() { @Override public void execute(final Project project) { final File devWar = extension.getDevWar(); final File classes = new File(devWar, "WEB-INF/classes"); eclipseModel.getClasspath().setDefaultOutputDir(classes); } }); } });
@Override public void apply(Project project) { project.apply(dependencies(ECLIPSE_TASK)); project.apply(dependencies(CHECKSTYLE_TASK)); project.getExtensions().create(ECLIPSE_CHECKSTYLE, EclipseCheckstyleExtension.class); // Ensure that the project has the checkstyle nature / builder applied EclipseModel eclipseModel = project.getExtensions().getByType(EclipseModel.class); EclipseProject eclipseProject = eclipseModel.getProject(); eclipseProject.natures(CHECKSTYLE_NATURE, GRADLE_NATURE); // Explicitly set the Java builder before Checkstyle so they don't get added // in an arbitrary order. eclipseProject.buildCommand(JAVA_BUILDER); eclipseProject.buildCommand(CHECKSTYLE_BUILDER); // Wire up our actions to the relevant eclipse tasks.. Task task = project.getTasks().findByName(ECLIPSE_TASK); if (task != null) { task.doLast(EclipseCheckstyle.generateAction()); } task = project.getTasks().findByName(CLEAN_ECLIPSE_TASK); if (task != null) { task.doLast(EclipseCheckstyle.cleanAction()); } }
private void initGwtEclipsePlugin(final Project project) { final GwtExtension gwtExtension = (GwtExtension) project.getExtensions() .getByName(GwtExtension.NAME); if (project.getPlugins().hasPlugin("eclipse") && gwtExtension.isGwtPluginEclipse()) { final EclipseModel eclipseModel = project.getExtensions() .getByType(EclipseModel.class); final EclipseProject eclipseProject = eclipseModel.getProject(); eclipseProject.natures(ECLIPSE_NATURE); eclipseProject.buildCommand(ECLIPSE_BUILDER_PROJECT_VALIDATOR); eclipseModel.getClasspath().getContainers() .add(ECLIPSE_GWT_CONTAINER); project.getPlugins() .withType(GwtPlugin.class, new Action<GwtPlugin>() { @Override public void execute(GwtPlugin warPlugin) { eclipseProject.buildCommand(ECLIPSE_BUILDER_WEBAPP_VALIDATOR); } }); } } }
.setConfigDir(this.project.file(Paths.get(getConfigDir(), "checkstyle").toString())); project.getPluginManager().withPlugin("eclipse", plugin -> { EclipseProject eclipseProject = project.getExtensions().getByType(EclipseModel.class).getProject(); eclipseProject.buildCommand("net.sf.eclipsecs.core.CheckstyleBuilder"); });
eclipseModel.getProject().natures(ECLIPSE_NATURE); eclipseModel.getProject().buildCommand(ECLIPSE_BUILDER_PROJECT_VALIDATOR);
@Override protected void applyOnce(Project project) { ProjectDepsExtension extension = project.getExtensions().create(ProjectDepsExtension.NAME, ProjectDepsExtension.class); EclipseProjectPlugin.modifyEclipseProject(project, eclipseModel -> { // find the project's referenced projects and reference them explicitly in the eclipse model Task prepareEclipse = project.task("prepareEclipse"); prepareEclipse.doLast(task -> { Set<String> referencedProjects = eclipseModel.getProject().getReferencedProjects(); project.getConfigurations().stream() .flatMap(config -> config.getDependencies().stream()) .filter(dep -> dep instanceof ProjectDependency) .forEach(dep -> { referencedProjects.add(dep.getName()); }); }); // it's needed for generating the eclipseClasspath and eclipseProject Iterables.getOnlyElement(project.getTasksByName("eclipseClasspath", false)).dependsOn(prepareEclipse); Iterables.getOnlyElement(project.getTasksByName("eclipseProject", false)).dependsOn(prepareEclipse); // create robust classpath entries for all referenced projects eclipseModel.getClasspath().getFile().getXmlTransformer().addAction(xmlProvider -> { modifyClasspath(xmlProvider.asNode(), eclipseModel, extension); }); }); }
@Test public void testEclipseSetup() { project.getPlugins().apply(EclipsePlugin.class); final EclipseModel eclipseModel = project.getExtensions().getByType(EclipseModel.class); assertThat(eclipseModel.getProject().getNatures(), hasItem(GwtEclipsePlugin.ECLIPSE_NATURE)); assertThat(eclipseModel.getProject().getBuildCommands(), hasItem(new BuildCommand(GwtEclipsePlugin.ECLIPSE_BUILDER_PROJECT_VALIDATOR))); assertThat(eclipseModel.getProject().getBuildCommands(), not(hasItem(new BuildCommand(GwtEclipsePlugin.ECLIPSE_BUILDER_WEBAPP_VALIDATOR)))); project.getPlugins().apply(WarPlugin.class); assertThat(eclipseModel.getProject().getBuildCommands(), hasItem(new BuildCommand(GwtEclipsePlugin.ECLIPSE_BUILDER_WEBAPP_VALIDATOR))); }