Example usage for org.apache.maven.project MavenProject getModules

List of usage examples for org.apache.maven.project MavenProject getModules

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getModules.

Prototype

public List<String> getModules() 

Source Link

Usage

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;
}