Example usage for org.apache.maven.model.building DefaultModelBuilder build

List of usage examples for org.apache.maven.model.building DefaultModelBuilder build

Introduction

In this page you can find the example usage for org.apache.maven.model.building DefaultModelBuilder build.

Prototype

@SuppressWarnings("checkstyle:methodlength")
    @Override
    public ModelBuildingResult build(ModelBuildingRequest request) throws ModelBuildingException 

Source Link

Usage

From source file:com.buschmais.jqassistant.plugin.m2repo.impl.scanner.EffectiveModelBuilder.java

@Override
public Model getModel(final File pomFile) throws IOException {
    DefaultModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(false);/*www .j  a  va  2s .  co  m*/
    req.setPomFile(pomFile);
    req.setModelResolver(modelResolver);
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    req.setSystemProperties(System.getProperties());
    builder.setModelValidator(new ModelValidatorImpl());
    try {
        return builder.build(req).getEffectiveModel();
    } catch (ModelBuildingException e) {
        LOGGER.warn("Cannot build effective model for " + pomFile.getAbsolutePath(), e);
        return new EffectiveModel(rawModelBuilder.getModel(pomFile));
    }
}

From source file:com.netflix.nebula.lint.rule.dependency.provider.MavenBomRecommendationProvider.java

License:Apache License

private Map<String, String> getMavenRecommendations()
        throws UnresolvableModelException, FileNotFoundException, ModelBuildingException {
    Map<String, String> recommendations = new HashMap<>();

    Set<File> recommendationFiles = getBomsOnConfiguration();
    for (File recommendation : recommendationFiles) {
        if (!recommendation.getName().endsWith("pom")) {
            break;
        }/*from   w  w  w.  j av  a  2s. c  om*/

        DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();

        request.setModelResolver(new ModelResolver() {
            @Override
            public ModelSource2 resolveModel(String groupId, String artifactId, String version)
                    throws UnresolvableModelException {
                String notation = groupId + ":" + artifactId + ":" + version + "@pom";
                org.gradle.api.artifacts.Dependency dependency = project.getDependencies().create(notation);
                org.gradle.api.artifacts.Configuration configuration = project.getConfigurations()
                        .detachedConfiguration(dependency);
                try {
                    File file = configuration.getFiles().iterator().next();
                    return new SimpleModelSource(new java.io.FileInputStream(file));
                } catch (Exception e) {
                    throw new UnresolvableModelException(e, groupId, artifactId, version);
                }
            }

            @Override
            public ModelSource2 resolveModel(Dependency dependency) throws UnresolvableModelException {
                return resolveModel(dependency.getGroupId(), dependency.getArtifactId(),
                        dependency.getVersion());
            }

            @Override
            public ModelSource2 resolveModel(Parent parent) throws UnresolvableModelException {
                return resolveModel(parent.getGroupId(), parent.getArtifactId(), parent.getVersion());
            }

            @Override
            public void addRepository(Repository repository) throws InvalidRepositoryException {
                // do nothing
            }

            @Override
            public void addRepository(Repository repository, boolean bool) throws InvalidRepositoryException {
                // do nothing
            }

            @Override
            public ModelResolver newCopy() {
                return this; // do nothing
            }
        });
        request.setModelSource(new SimpleModelSource(new java.io.FileInputStream(recommendation)));
        request.setSystemProperties(System.getProperties());

        DefaultModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
        modelBuilder.setModelInterpolator(new ProjectPropertiesModelInterpolator(project));

        ModelBuildingResult result = modelBuilder.build(request);
        log.info("using bom: " + result.getEffectiveModel().getId());
        Model model = result.getEffectiveModel();
        if (model == null) {
            break;
        }
        org.apache.maven.model.DependencyManagement dependencyManagement = model.getDependencyManagement();
        if (dependencyManagement == null) {
            break;
        }
        for (Dependency d : dependencyManagement.getDependencies()) {
            recommendations.put(d.getGroupId() + ":" + d.getArtifactId(), d.getVersion()); // overwrites previous values
        }
    }
    return recommendations;
}

From source file:com.tobedevoured.naether.maven.Project.java

License:Apache License

/**
 * Load Maven pom//from  w  w  w  . ja  v a 2s.co  m
 *
 * @param pomPath String path
 * @param localRepo String
 * @param repositories {@link Collection<RemoteRepository>}
 * @return {@link Model}
 * @throws ProjectException if fails to open, read, or parse the POM
 */
public static Model loadPOM(String pomPath, String localRepo, Collection<RemoteRepository> repositories)
        throws ProjectException {
    RepositoryClient repoClient = new RepositoryClient(localRepo);
    NaetherModelResolver resolver = new NaetherModelResolver(repoClient, repositories);

    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(false);
    req.setPomFile(new File(pomPath));
    req.setModelResolver(resolver);
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);

    DefaultModelBuilder builder = (new DefaultModelBuilderFactory()).newInstance();
    try {
        return builder.build(req).getEffectiveModel();
    } catch (ModelBuildingException e) {
        throw new ProjectException("Failed to build project from pom", e);
    }
}

From source file:fr.inria.spirals.repairnator.process.maven.MavenHelper.java

public static Model readPomXml(File pomXml, String localMavenRepository) {
    ModelBuildingRequest req = new DefaultModelBuildingRequest();
    req.setProcessPlugins(true);/*from  w w w  . java2s.  c o m*/
    req.setPomFile(pomXml);
    req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    req.setModelResolver(new RepositoryModelResolver(localMavenRepository));

    DefaultModelBuilder defaultModelBuilder = new DefaultModelBuilderFactory().newInstance();

    // we try to build the model, and if we fail, we try to get the raw model
    try {
        ModelBuildingResult modelBuildingResult = defaultModelBuilder.build(req);
        return modelBuildingResult.getEffectiveModel();
    } catch (ModelBuildingException e) {
        LOGGER.error("Error while building complete model. The raw model will be used. Error message: "
                + e.getMessage());
        return defaultModelBuilder.buildRawModel(pomXml, ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL, true)
                .get();
    }

}

From source file:org.codehaus.mojo.flatten.FlattenMojo.java

License:Apache License

/**
 * Creates the effective POM for the given <code>pomFile</code> trying its best to match the core maven behaviour.
 *
 * @return the parsed and calculated effective POM.
 * @throws MojoExecutionException if anything goes wrong.
 *//*from   ww w.  j  a  v a 2s .  c  o m*/
protected static Model createEffectivePom(ModelBuildingRequest buildingRequest,
        final boolean embedBuildProfileDependencies) throws MojoExecutionException {
    ModelBuildingResult buildingResult;
    try {
        ProfileInjector profileInjector = new ProfileInjector() {

            public void injectProfile(Model model, Profile profile, ModelBuildingRequest request,
                    ModelProblemCollector problems) {

                // do nothing
            }
        };
        ProfileSelector profileSelector = new ProfileSelector() {

            public List<Profile> getActiveProfiles(Collection<Profile> profiles,
                    ProfileActivationContext context, ModelProblemCollector problems) {

                List<Profile> activeProfiles = new ArrayList<Profile>(profiles.size());

                for (Profile profile : profiles) {
                    Activation activation = profile.getActivation();
                    if (!embedBuildProfileDependencies || isBuildTimeDriven(activation)) {
                        activeProfiles.add(profile);
                    }
                }

                return activeProfiles;
            }
        };
        DefaultModelBuilder defaultModelBuilder = new DefaultModelBuilderFactory().newInstance();
        defaultModelBuilder.setProfileInjector(profileInjector).setProfileSelector(profileSelector);
        buildingResult = defaultModelBuilder.build(buildingRequest);
    } catch (ModelBuildingException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    }

    Model effectivePom = buildingResult.getEffectiveModel();

    // LoggingModelProblemCollector problems = new LoggingModelProblemCollector( getLog() );
    // Model interpolatedModel =
    // this.modelInterpolator.interpolateModel( this.project.getOriginalModel(),
    // effectivePom.getProjectDirectory(), buildingRequest, problems );

    // remove Repositories from super POM (central)
    effectivePom.setRepositories(createFlattenedRepositories(effectivePom.getRepositories()));
    return effectivePom;
}

From source file:org.springframework.boot.cli.compiler.DependencyManagementBomTransformation.java

License:Apache License

private void updateDependencyResolutionContext(List<Map<String, String>> bomDependencies) {
    URI[] uris = Grape.getInstance().resolve(null, bomDependencies.toArray(new Map[bomDependencies.size()]));
    DefaultModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
    for (URI uri : uris) {
        try {//from   www  .j a va 2 s .  c o m
            DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
            request.setModelResolver(new GrapeModelResolver());
            request.setModelSource(new UrlModelSource(uri.toURL()));
            request.setSystemProperties(System.getProperties());
            Model model = modelBuilder.build(request).getEffectiveModel();
            this.resolutionContext.addDependencyManagement(new MavenModelDependencyManagement(model));
        } catch (Exception ex) {
            throw new IllegalStateException("Failed to build model for '" + uri + "'. Is it a valid Maven bom?",
                    ex);
        }
    }
}