List of usage examples for org.apache.maven.project MavenProject getModules
public List<String> getModules()
From source file:org.wso2.developerstudio.eclipse.platform.ui.mvn.wizard.MvnMultiModuleWizard.java
License:Open Source License
public boolean performFinish() { // If the multiModuleProject is not empty, then this is thru UI. Just generate the POM MavenProject mavenProject = MavenUtils.createMavenProject(moduleModel.getGroupId(), moduleModel.getArtifactId(), moduleModel.getVersion(), "pom"); if (moduleModel.isRequiredParent()) { Parent parent = new Parent(); parent.setArtifactId(moduleModel.getParentArtifact()); parent.setGroupId(moduleModel.getParentGroup()); parent.setVersion(moduleModel.getParentVersion()); String relativePath = moduleModel.getRelativePath(); if (relativePath != null && !relativePath.trim().isEmpty()) { parent.setRelativePath(relativePath); }//from w ww . j a v a 2 s.c om mavenProject.getModel().setParent(parent); } else { mavenProject.getModel().setParent(null); } List modules = mavenProject.getModules(); List<IProject> selectedProjects = moduleModel.getSelectedProjects(); selectedProjects = sortProjects(selectedProjects); if (multiModuleProject != null) { IFile pomFile = multiModuleProject.getFile("pom.xml"); if (pomFile.exists()) { // Parse the pom and see the packaging type try { MavenProject mavenProject2 = MavenUtils.getMavenProject(pomFile.getLocation().toFile()); String packaging = mavenProject2.getPackaging(); if (!"pom".equalsIgnoreCase(packaging)) { addMavenModules(multiModuleProject, mavenProject, modules, selectedProjects, pomFile); } else { modules = mavenProject2.getModules(); mavenProject2.setGroupId(moduleModel.getGroupId()); mavenProject2.setArtifactId(moduleModel.getArtifactId()); mavenProject2.setVersion(moduleModel.getVersion()); mavenProject2.getModel().setParent(mavenProject.getModel().getParent()); addMavenModules(multiModuleProject, mavenProject2, modules, selectedProjects, pomFile); } } catch (Exception e) { log.error("Error occured while trying to generate the Maven Project for the Project Pom", e); } } else { // Since pom is not there, just create the new pom with all the necessary things addMavenModules(multiModuleProject, mavenProject, modules, selectedProjects, pomFile); } // Adding Maven Multi Module Nature to POM generated Project addMavenMultiModuleProjectNature(multiModuleProject); } else { try { moduleModel.setProjectName(moduleModel.getArtifactId()); project = createNewProject(); addMavenMultiModuleProjectNature(project); addMavenModules(project, mavenProject, modules, selectedProjects, project.getFile("pom.xml")); } catch (CoreException e) { log.error("Error occured while creating the new Maven Multi Module Project", e); } catch (ObserverFailedException e) { log.error("Error occured while trying to inject values to the Project Model", e); } } return true; }
From source file:org.wso2.developerstudio.eclipse.platform.ui.wizard.AbstractWSO2ProjectCreationWizard.java
License:Open Source License
/** * This method is used to update the module list of Maven multi module project upon a project creation under MMM project. * Fixed TOOLS-1492//from w w w . j a va 2s. c om * @param name * @param location * @param root * @throws CoreException */ private void updateMMMPModuleList(String name, File location, IWorkspaceRoot root) throws CoreException { IResource resource = root .findMember(FileUtils.getRelativePath(root.getLocation().toFile(), location.getParentFile())); if (resource instanceof IProject) { IProject parentProject = (IProject) resource; if (parentProject.isOpen() && parentProject .hasNature("org.wso2.developerstudio.eclipse.mavenmultimodule.project.nature")) { IFile pomFile = parentProject.getFile("pom.xml"); if (pomFile.exists()) { try { MavenProject mavenProject = MavenUtils.getMavenProject(pomFile.getLocation().toFile()); mavenProject.getModules().add(name); List<String> modules = mavenProject.getModules(); List<String> sortedModuleList = getSortedModuleList(modules, parentProject); mavenProject.getModules().clear(); mavenProject.getModules().addAll(sortedModuleList); MavenUtils.saveMavenProject(mavenProject, pomFile.getLocation().toFile()); parentProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); } catch (Exception e) { log.error("Error occured while adding " + name + " to " + parentProject.getName() + " module list.", e); } } } } }
From source file:se.jguru.nazgul.tools.codestyle.enforcer.rules.ProjectType.java
License:Apache License
/** * Acquires the ProjectType instance for the provided MavenProject, * or throws an IllegalArgumentException holding an exception message * if a ProjectType could not be found for the provided MavenProject. * * @param project The MavenProject to classify. * @return The corresponding ProjectType. * @throws IllegalArgumentException if the given project could not be mapped to a [single] ProjectType. * The exception message holds *//*from w w w.jav a 2 s.c om*/ public static ProjectType getProjectType(final MavenProject project) throws IllegalArgumentException { Validate.notNull(project, "Cannot handle null project argument."); final List<ProjectType> matches = findCandidates(project.getGroupId(), project.getArtifactId(), project.getPackaging(), "Incorrect project type definition for [" + project.getGroupId() + " :: " + project.getArtifactId() + " :: " + project.getVersion() + "]: "); // Validate the internal requirements for the two different pom projects. final ProjectType toReturn = matches.get(0); switch (toReturn) { case PARENT: case ASSEMBLY: // This project should not contain modules. if (project.getModules() != null && !project.getModules().isEmpty()) { throw new IllegalArgumentException( ProjectType.PARENT + " projects may not contain module definitions. " + "(Modules are reserved for reactor projects)."); } break; case REACTOR: // This project not contain dependency definitions. final List<?> dependencies = project.getDependencies(); if (dependencies != null && !dependencies.isEmpty()) { throw new IllegalArgumentException( ProjectType.REACTOR + " projects may not contain dependency definitions." + " (Dependencies should be defined within parent projects)."); } final DependencyManagement dependencyManagement = project.getDependencyManagement(); if (dependencyManagement != null) { // Dig out all dependency management-defined dependencies. final List<Dependency> templateDependencies = dependencyManagement.getDependencies(); if (templateDependencies != null && !templateDependencies.isEmpty()) { throw new IllegalArgumentException( ProjectType.REACTOR + " projects may not contain dependency [management] definitions." + " (Dependencies should be defined within parent projects)."); } } break; // No action should be taken for other project types. default: break; } // All done. return toReturn; }
From source file:sorcer.maven.plugin.InitializeMojo.java
License:Apache License
private String resolveModule(MavenProject project, String userData, String role) { String name = userData != null ? userData : project.getArtifactId() + "-" + role; if (project.getModules().contains(name)) { return name; }/*from w w w . j a v a 2 s. c o m*/ return null; }