Example usage for org.apache.maven.project MavenProjectBuilder build

List of usage examples for org.apache.maven.project MavenProjectBuilder build

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProjectBuilder build.

Prototype

MavenProject build(File pom, ArtifactRepository localRepository, ProfileManager profileManager)
            throws ProjectBuildingException;

Source Link

Usage

From source file:net.sourceforge.vulcan.maven.integration.MavenIntegration.java

License:Open Source License

public MavenProjectBuildConfigurator createProjectConfigurator(File buildSpecFile, String mavenHomeProfileName,
        String goals, ApplicationContext applicationContext) throws ConfigException {
    try {//from  w w  w  . j a  v  a 2s  .c om
        final MavenProjectBuilder builder = (MavenProjectBuilder) embedder.lookup(MavenProjectBuilder.ROLE);

        final MavenProject project = builder.build(buildSpecFile, artifactRepository, null);

        return new MavenProjectConfiguratorImpl(project, mavenHomeProfileName, goals, applicationContext);
    } catch (ProjectBuildingException e) {
        throw new ConfigException("maven.maven2.load.error", new Object[] { e.getMessage() });
    } catch (ComponentLookupException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.codehaus.mojo.pomtools.wrapper.custom.ProjectWrapper.java

License:Apache License

/** Creates a temporary MavenProject from the current contents of our
 * wrappedModel.  This is usefule when performing operations that need
 * full model resolution. For example, dependencies that inherit their versions
 * from the parent pom./*from ww  w.j a  v a  2 s  . c o  m*/
 */
protected MavenProject createTempResolvedProject(Model model)
        throws PomToolsException, ProjectBuildingException, InvalidProjectModelException {
    PomToolsPluginContext context = PomToolsPluginContext.getInstance();

    File baseDir = getBaseDir();

    PlexusContainer container = context.getSession().getContainer();

    File tempPomFile = null;
    try {
        tempPomFile = File.createTempFile(".pomtools-plugin-temp", "-pom.xml.", baseDir);
        tempPomFile.deleteOnExit();

        ProjectWrapper.writeModel(tempPomFile, model);

        MavenProjectBuilder builder = (MavenProjectBuilder) container.lookup(MavenProjectBuilder.ROLE);

        // TODO: This is not right. I think we need to get a handle to the global ProfileManager
        ProfileManager profileManager = new DefaultProfileManager(container);

        APIWorkaroundHelper.clearBuilderCache(builder);

        MavenProject project = builder.build(tempPomFile, context.getMetadataHelper().getLocalRepository(),
                profileManager);

        return project;
    } catch (IOException e) {
        throw new PomToolsException("An error occured while writing temporary pom", e);
    } catch (ComponentLookupException e) {
        throw new PomToolsException("Unable to get the default MavenProjectBuilder", e);
    } finally {
        if (tempPomFile != null && tempPomFile.exists()) {
            tempPomFile.delete();
        }
    }
}

From source file:org.codehaus.mojo.versions.api.PomHelper.java

License:Apache License

/**
 * Finds the local root of the specified project.
 *
 * @param project              The project to find the local root for.
 * @param localRepository      the local repo.
 * @param globalProfileManager the global profile manager.
 * @param logger               The logger to log to.
 * @return The local root (note this may be the project passed as an argument).
 *//*from   w ww  . j  a  v a  2s.c o m*/
public static MavenProject getLocalRoot(MavenProjectBuilder builder, MavenProject project,
        ArtifactRepository localRepository, ProfileManager globalProfileManager, Log logger) {
    logger.info("Searching for local aggregator root...");
    while (true) {
        final File parentDir = project.getBasedir().getParentFile();
        if (parentDir.isDirectory()) {
            logger.debug("Checking to see if " + parentDir + " is an aggregator parent");
            File parent = new File(parentDir, "pom.xml");
            if (parent.isFile()) {
                try {
                    final MavenProject parentProject = builder.build(parent, localRepository,
                            globalProfileManager);
                    if (getAllChildModules(parentProject, logger).contains(project.getBasedir().getName())) {
                        logger.debug(parentDir + " is an aggregator parent");
                        project = parentProject;
                        continue;
                    } else {
                        logger.debug(parentDir + " is not an aggregator parent");
                    }
                } catch (ProjectBuildingException e) {
                    logger.warn(e);
                }
            }
        }
        logger.debug("Local aggregation root is " + project.getBasedir());
        return project;
    }
}

From source file:org.mobicents.maven.plugin.utils.ProjectUtils.java

License:Open Source License

/**
 * Gets a project for the given <code>pom</code>.
 *
 * @param pom the pom from which to build the project.
 * @return the built project./*from  w ww  .java 2  s  . co m*/
 * @throws ProjectBuildingException
 */
public static synchronized MavenProject getProject(final MavenProjectBuilder projectBuilder,
        final MavenSession session, final File pom, final Log logger) throws ProjectBuildingException {
    // - first attempt to get a project from the cache
    MavenProject project = (MavenProject) projectCache.get(pom);
    if (project == null) {
        // - next attempt to get the existing project from the session
        project = getProjectFromSession(session, pom);
        if (project == null) {
            // - if we didn't find it in the session, create it
            try {
                project = projectBuilder.build(pom, session.getLocalRepository(),
                        new DefaultProfileManager(session.getContainer()));
                projectCache.put(pom, project);
            } catch (Exception ex) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Failed to build project from pom: " + pom, ex);
                }
            }
        }
    }
    return project;
}