Java 类org.apache.maven.model.building.ModelBuildingResult 实例源码
项目:incubator-netbeans
文件:MavenEmbedder.java
/**
* Creates a list of POM models in an inheritance lineage.
* Each resulting model is "raw", so contains no interpolation or inheritance.
* In particular beware that groupId and/or version may be null if inherited from a parent; use {@link Model#getParent} to resolve.
* Internally calls <code>executeModelBuilder</code> so if you need to call both just use the execute method.
* @param pom a POM to inspect
* @param embedder an embedder to use
* @return a list of models, starting with the specified POM, going through any parents, finishing with the Maven superpom (with a null artifactId)
* @throws ModelBuildingException if the POM or parents could not even be parsed; warnings are not reported
*/
public List<Model> createModelLineage(File pom) throws ModelBuildingException {
ModelBuildingResult res = executeModelBuilder(pom);
List<Model> toRet = new ArrayList<Model>();
for (String id : res.getModelIds()) {
Model m = res.getRawModel(id);
normalizePath(m);
toRet.add(m);
}
// for (ModelProblem p : res.getProblems()) {
// System.out.println("problem=" + p);
// if (p.getException() != null) {
// p.getException().printStackTrace();
// }
// }
return toRet;
}
项目:incubator-netbeans
文件:NBModelBuilder.java
@Override
public ModelBuildingResult build(ModelBuildingRequest request) throws ModelBuildingException {
ModelBuildingResult toRet = super.build(request);
Model eff = toRet.getEffectiveModel();
InputSource source = new InputSource();
source.setLocation("");
InputLocation location = new InputLocation(-1, -1, source);
eff.setLocation(NETBEANS_PROFILES, location);
for (String id : toRet.getModelIds()) {
Model mdl = toRet.getRawModel(id);
for (Profile p : mdl.getProfiles()) {
source.setLocation(source.getLocation() + "|" + p.getId());
}
}
return toRet;
}
项目:oceano
文件:DefaultProjectBuilder.java
private String findProfilesXml( ModelBuildingResult result, Map<File, Boolean> profilesXmls )
{
for ( String modelId : result.getModelIds() )
{
Model model = result.getRawModel( modelId );
File basedir = model.getProjectDirectory();
if ( basedir == null )
{
break;
}
Boolean profilesXml = profilesXmls.get( basedir );
if ( profilesXml == null )
{
profilesXml = Boolean.valueOf( new File( basedir, "profiles.xml" ).exists() );
profilesXmls.put( basedir, profilesXml );
}
if ( profilesXml.booleanValue() )
{
return modelId;
}
}
return null;
}
项目:isc-maven-plugin
文件:AbstractPackagerMojo.java
/**f
* 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.
*
* @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();
}
项目:redhat-repository-validator
文件:BomVersionPropertyValidator.java
@Override
public void validate(ValidatorContext ctx) {
Collection<File> pomFiles = listPomFiles(ctx.getValidatedRepository(), fileFilter);
for (File pomFile : pomFiles) {
if (!ctx.getErrors(pomFile).isEmpty()) {
logger.debug("skipping `{}`, because already contains exceptions", pomFile);
continue;
}
ModelBuildingResult result = validatorSupport.buildModel(pomFile);
Model rawModel = result.getRawModel();
Model effectiveModel = result.getEffectiveModel();
if (bomFilter.isBom(effectiveModel)) {
validateBomDependenciesVersionProperty(ctx, pomFile, rawModel, effectiveModel);
}
}
}
项目:incubator-netbeans
文件:NbMavenProjectImpl.java
public Model getRawModel() throws ModelBuildingException {
synchronized(MODEL_LOCK) {
if(model == null) {
MavenEmbedder projectEmbedder = EmbedderFactory.getProjectEmbedder();
ModelBuildingResult br = projectEmbedder.executeModelBuilder(getPOMFile());
model = br.getRawModel();
}
return model;
}
}
项目:incubator-netbeans
文件:MavenEmbedder.java
/**
*
* @param pom
* @return result object with access to effective pom model and raw models for each parent.
* @throws ModelBuildingException if the POM or parents could not even be parsed; warnings are not reported
*/
public ModelBuildingResult executeModelBuilder(File pom) throws ModelBuildingException {
ModelBuilder mb = lookupComponent(ModelBuilder.class);
assert mb!=null : "ModelBuilder component not found in maven";
ModelBuildingRequest req = new DefaultModelBuildingRequest();
req.setPomFile(pom);
req.setProcessPlugins(false);
req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
req.setLocationTracking(true);
req.setModelResolver(new NBRepositoryModelResolver(this));
req.setSystemProperties(getSystemProperties());
req.setUserProperties(embedderConfiguration.getUserProperties());
return mb.build(req);
}
项目:furnace
文件:ProjectHelper.java
public Model loadPomFromFile(File pomFile, String... profiles)
{
RepositorySystem system = mavenContainer.getRepositorySystem();
Settings settings = mavenContainer.getSettings();
DefaultRepositorySystemSession session = mavenContainer.setupRepoSession(system, settings);
final DefaultModelBuildingRequest request = new DefaultModelBuildingRequest()
.setSystemProperties(System.getProperties())
.setPomFile(pomFile)
.setActiveProfileIds(settings.getActiveProfiles());
ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
ModelBuildingResult result;
try
{
request.setModelResolver(new MavenModelResolver(system, session,
MavenRepositories.getRemoteRepositories(mavenContainer, settings)));
result = builder.build(request);
}
// wrap exception message
catch (ModelBuildingException e)
{
String pomPath = request.getPomFile().getAbsolutePath();
StringBuilder sb = new StringBuilder("Found ").append(e.getProblems().size())
.append(" problems while building POM model from ").append(pomPath).append("\n");
int counter = 1;
for (ModelProblem problem : e.getProblems())
{
sb.append(counter++).append("/ ").append(problem).append("\n");
}
throw new RuntimeException(sb.toString());
}
return result.getEffectiveModel();
}
项目:oceano
文件:DefaultProjectBuilder.java
InterimResult( File pomFile, ModelBuildingRequest request, ModelBuildingResult result,
DefaultModelBuildingListener listener, boolean root )
{
this.pomFile = pomFile;
this.request = request;
this.result = result;
this.listener = listener;
this.root = root;
}
项目:oceano
文件:DefaultProjectBuilder.java
private boolean build( List<ProjectBuildingResult> results, List<MavenProject> projects,
Map<String, MavenProject> projectIndex, List<InterimResult> interimResults,
ProjectBuildingRequest request, Map<File, Boolean> profilesXmls )
{
boolean noErrors = true;
for ( InterimResult interimResult : interimResults )
{
try
{
ModelBuildingResult result = modelBuilder.build( interimResult.request, interimResult.result );
MavenProject project = interimResult.listener.getProject();
initProject( project, projectIndex, result, profilesXmls );
List<MavenProject> modules = new ArrayList<MavenProject>();
noErrors =
build( results, modules, projectIndex, interimResult.modules, request, profilesXmls ) && noErrors;
projects.addAll( modules );
projects.add( project );
project.setExecutionRoot( interimResult.root );
project.setCollectedProjects( modules );
results.add( new DefaultProjectBuildingResult( project, result.getProblems(), null ) );
}
catch ( ModelBuildingException e )
{
results.add( new DefaultProjectBuildingResult( e.getModelId(), interimResult.pomFile, e.getProblems() ) );
noErrors = false;
}
}
return noErrors;
}
项目:buck
文件:Resolver.java
private Model loadPomModel(Path pomFile) {
DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
request.setPomFile(pomFile.toFile());
try {
ModelBuildingResult result = modelBuilder.build(request);
return result.getRawModel();
} catch (ModelBuildingException | IllegalArgumentException e) {
// IllegalArg can be thrown if the parent POM cannot be resolved.
throw new RuntimeException(e);
}
}
项目:buck
文件:Pom.java
private Model constructModel(File file, Model model) {
ModelBuilder modelBuilder = MODEL_BUILDER_FACTORY.newInstance();
try {
ModelBuildingRequest req = new DefaultModelBuildingRequest().setPomFile(file);
ModelBuildingResult modelBuildingResult = modelBuilder.build(req);
Model constructed = Preconditions.checkNotNull(modelBuildingResult.getRawModel());
return merge(model, constructed);
} catch (ModelBuildingException e) {
throw new RuntimeException(e);
}
}
项目:redhat-repository-validator
文件:ValidatorSupport.java
public ModelBuildingResult buildModel(File pomFile) {
ModelBuildingResult result = null;
DefaultModelBuildingRequest request = new DefaultModelBuildingRequest(modelBuildingRequestTemplate);
request.setPomFile(pomFile);
request.setModelSource(new FileModelSource(pomFile));
try {
result = modelBuilder.build(request);
} catch (ModelBuildingException e) {
result = null;
}
return result;
}
项目:redhat-repository-validator
文件: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);
}
}
}
}
项目:forge-furnace
文件:ProjectHelper.java
public Model loadPomFromFile(File pomFile, String... profiles)
{
RepositorySystem system = mavenContainer.getRepositorySystem();
Settings settings = mavenContainer.getSettings();
DefaultRepositorySystemSession session = mavenContainer.setupRepoSession(system, settings);
final DefaultModelBuildingRequest request = new DefaultModelBuildingRequest()
.setSystemProperties(System.getProperties())
.setPomFile(pomFile)
.setActiveProfileIds(settings.getActiveProfiles());
ModelBuilder builder = new DefaultModelBuilderFactory().newInstance();
ModelBuildingResult result;
try
{
request.setModelResolver(new MavenModelResolver(system, session, mavenContainer
.getEnabledRepositoriesFromProfile(settings)));
result = builder.build(request);
}
// wrap exception message
catch (ModelBuildingException e)
{
String pomPath = request.getPomFile().getAbsolutePath();
StringBuilder sb = new StringBuilder("Found ").append(e.getProblems().size())
.append(" problems while building POM model from ").append(pomPath).append("\n");
int counter = 1;
for (ModelProblem problem : e.getProblems())
{
sb.append(counter++).append("/ ").append(problem).append("\n");
}
throw new RuntimeException(sb.toString());
}
return result.getEffectiveModel();
}