List of usage examples for org.apache.maven.model.building DefaultModelBuilder build
@SuppressWarnings("checkstyle:methodlength") @Override public ModelBuildingResult build(ModelBuildingRequest request) throws ModelBuildingException
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); } } }