List of usage examples for org.apache.maven.model.building ModelBuildingResult getEffectiveModel
Model getEffectiveModel();
From source file:com.google.devtools.build.workspace.maven.DefaultModelResolver.java
License:Open Source License
public Model getEffectiveModel(ModelSource modelSource, EventHandler handler) { DefaultModelBuildingRequest request = new DefaultModelBuildingRequest(); request.setModelResolver(this); request.setModelSource(modelSource); Model model;/*from ww w . j a v a2s. c om*/ try { ModelBuildingResult result = modelBuilder.build(request); model = result.getEffectiveModel(); } catch (ModelBuildingException | IllegalArgumentException e) { // IllegalArg can be thrown if the parent POM cannot be resolved. handler.handle(Event.error( "Unable to resolve Maven model from " + modelSource.getLocation() + ": " + e.getMessage())); return null; } return model; }
From source file:com.isomorphic.maven.mojo.AbstractPackagerMojo.java
License:Apache License
/** * Read the given POM so it can be used as the source of coordinates, etc. during artifact construction. Note that * if this object's {@link #snapshots} property is true, and we're working with a development build ({@link #buildNumber} * ends with 'd'), the POM is modified to remove the SNAPSHOT qualifier. * //from w ww .jav a2s.co m * @param pom the POM file containing the artifact metadata * @return A Maven model to be used at {@link com.isomorphic.maven.packaging.Module#Module(Model)} Module construction * @throws ModelBuildingException if the Model cannot be built from the given POM * @throws IOException if the Model cannot be built from the given POM */ private Model getModelFromFile(File pom) throws ModelBuildingException, IOException { if (buildNumber.endsWith("d") && !snapshots) { LOGGER.info("Rewriting file to remove SNAPSHOT qualifier from development POM '{}'", pom.getName()); String content = FileUtils.readFileToString(pom); content = content.replaceAll("-SNAPSHOT", ""); FileUtils.write(pom, content); } ModelBuildingRequest request = new DefaultModelBuildingRequest(); request.setPomFile(pom); ModelBuildingResult result = modelBuilder.build(request); return result.getEffectiveModel(); }
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. ja v a2s . c o m*/ 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.redhat.rcm.version.model.Project.java
License:Open Source License
public Project(final Model raw, final ModelBuildingResult mbResult, final File pom) throws ProjectToolsException { this.pom = pom; this.originalModel = cloneModel(raw); this.model = raw; this.effectiveModel = mbResult.getEffectiveModel(); this.key = new FullProjectKey(raw); }
From source file:com.redhat.repository.validator.impl.bestpractices.BestPracticesValidator.java
@Override public void validate(ValidatorContext ctx) { Iterator<ModelBuildingResult> modelIterator = validatorSupport.modelIterator(ctx, fileFilter); while (modelIterator.hasNext()) { ModelBuildingResult modelResult = modelIterator.next(); if (modelResult != null) { Model rawModel = modelResult.getRawModel(); Model effectiveModel = modelResult.getEffectiveModel(); if (rawModel != null && effectiveModel != null) { logger.trace("validating {}", relativize(ctx, rawModel.getPomFile())); validateBestPractices(ctx, rawModel, effectiveModel); }/*from w w w . j a v a 2 s .co m*/ } } }
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. java 2 s . 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:io.tesla.maven.bridge.support.model.internal.MavenModelResolverSupport.java
License:Open Source License
@Override public Model resolveModel(final ModelBuildingRequest request, final RepositorySystemSession session, final RemoteRepository... repositories) throws ModelBuildingException { assertNotNull(session, session.getClass()); request.setModelResolver(new ModelResolverProxy(session, repositories)); if (request.getModelSource() instanceof ArtifactModelSource) { final ArtifactModelSource source = (ArtifactModelSource) request.getModelSource(); source.resolver = new ModelResolverProxy(session, repositories); }// w w w. j av a2 s. c o m final ModelBuildingResult modelResult = modelBuilder.build(request); return modelResult.getEffectiveModel(); }
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 w ww . j a va2 s. 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.dthume.maven.xpom.impl.DefaultArtifactResolver.java
License:Apache License
private Source resolveEffectivePOMInternal(final String coords) { final File pom = resolveArtifactInternal(coords).getArtifact().getFile(); final ModelBuildingRequest request = new DefaultModelBuildingRequest() .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL) .setModelResolver(getModelResolver()).setPomFile(pom); final ModelBuildingResult result = buildModel(request); try {//from w w w . j a va 2 s . c om return XPOMUtil.modelToSource(result.getEffectiveModel()); } catch (final IOException e) { throw ARE("Failed to serialize model", e); } }
From source file:org.eclipse.ebr.maven.ModelUtil.java
License:Open Source License
public Model buildEffectiveModel(final File pomFile) throws MojoExecutionException { getLog().debug(format("Building effective model for pom '%s'.", pomFile)); final DefaultModelBuildingRequest request = new DefaultModelBuildingRequest(); request.setModelResolver(getModelResolver()); request.setPomFile(pomFile);/*from w w w. ja v a2 s . c om*/ request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); request.setProcessPlugins(false); request.setTwoPhaseBuilding(false); request.setUserProperties(getMavenSession().getUserProperties()); request.setSystemProperties(getMavenSession().getSystemProperties()); if (getLog().isDebugEnabled()) { getLog().debug("Request: " + request); } ModelBuildingResult result; try { result = modelBuilder.build(request); } catch (final ModelBuildingException e) { getLog().debug(e); throw new MojoExecutionException( format("Unable to build model for pom '%s'. %s", pomFile, e.getMessage())); } if (getLog().isDebugEnabled()) { getLog().debug("Result: " + result); } return result.getEffectiveModel(); }