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 { 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); } } }
/** * * TODO: This does not currently work. * */ @SuppressWarnings("unused") private static Model complexModelBuilding(File file) throws Exception { ModelBuilder builder = new DefaultModelBuilder(); ModelBuildingRequest request = new DefaultModelBuildingRequest(); request.setProcessPlugins(false); request.setPomFile(file); // request.setModelResolver(new ModelResolver() {}); request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); //noinspection UnnecessaryLocalVariable Model model = builder.build(request).getEffectiveModel(); return model; }