in src/main/java/org/apache/maven/buildcache/DefaultNormalizedModelProvider.java [68:97]
private Model normalizedModelInner(MavenProject project) {
// prefer project from multimodule than reactor because effective pom of reactor project
// could be built with maven local/remote dependencies but not with artifacts from cache
MavenProject projectToNormalize = multiModuleSupport
.tryToResolveProject(project.getGroupId(), project.getArtifactId(), project.getVersion())
.orElse(project);
Model prototype = projectToNormalize.getModel();
// TODO validate status of the model - it should be in resolved state
Model resultModel = new Model();
resultModel.setGroupId(prototype.getGroupId());
resultModel.setArtifactId(prototype.getArtifactId());
// does not make sense to add project version to calculate hash
resultModel.setVersion(NORMALIZED_VERSION);
resultModel.setModules(prototype.getModules());
resultModel.setDependencies(normalizeDependencies(prototype.getDependencies()));
org.apache.maven.model.Build protoBuild = prototype.getBuild();
if (protoBuild == null) {
return resultModel;
}
Build build = new Build();
List<Plugin> plugins = prototype.getBuild().getPlugins();
build.setPlugins(normalizePlugins(plugins));
resultModel.setBuild(build);
return resultModel;
}