in maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java [1835:1926]
private void calculateConcreteStateInternal( MavenProject project, ProjectBuilderConfiguration config, boolean processProjectReferences, Set processedProjects )
throws ModelInterpolationException
{
if ( processProjectReferences )
{
processedProjects.add( project.getId() );
}
restoreDynamicStateInternal( project, config, processProjectReferences, processProjectReferences ? new HashSet( processedProjects ) : null );
if ( !project.isConcrete() )
{
if ( project.getParent() != null )
{
calculateConcreteStateInternal( project.getParent(), config, processProjectReferences, processedProjects );
}
Build build = project.getBuild();
if ( build != null )
{
initResourceMergeIds( build.getResources() );
initResourceMergeIds( build.getTestResources() );
}
// NOTE: Since interpolation makes a copy through serialization, we don't need this.
// See note below.
//
// Model model = ModelUtils.cloneModel( project.getModel() );
File basedir = project.getBasedir();
// NOTE: If we ever get past serialization/deserialization for interpolation, we'll need to copy the model here!
Model model = ModelUtils.cloneModel( project.getModel() );
model = modelInterpolator.interpolate( model, project.getBasedir(), config, getLogger().isDebugEnabled() );
List originalInterpolatedCompileSourceRoots = interpolateListOfStrings( project.getCompileSourceRoots(),
model,
project.getBasedir(),
config,
getLogger().isDebugEnabled() );
project.preserveCompileSourceRoots( originalInterpolatedCompileSourceRoots );
project.setCompileSourceRoots( originalInterpolatedCompileSourceRoots == null ? null
: translateListOfPaths( originalInterpolatedCompileSourceRoots, basedir ) );
List originalInterpolatedTestCompileSourceRoots = interpolateListOfStrings( project.getTestCompileSourceRoots(),
model,
project.getBasedir(),
config,
getLogger().isDebugEnabled() );
project.preserveTestCompileSourceRoots( originalInterpolatedTestCompileSourceRoots );
project.setTestCompileSourceRoots( originalInterpolatedTestCompileSourceRoots == null ? null
: translateListOfPaths( originalInterpolatedTestCompileSourceRoots, basedir ) );
List originalInterpolatedScriptSourceRoots = interpolateListOfStrings( project.getScriptSourceRoots(),
model,
project.getBasedir(),
config,
getLogger().isDebugEnabled() );
project.preserveScriptSourceRoots( originalInterpolatedScriptSourceRoots );
// TODO: MNG-3731
project.setScriptSourceRoots( originalInterpolatedScriptSourceRoots );
// project.setScriptSourceRoots( originalInterpolatedScriptSourceRoots == null ? null
// : translateListOfPaths( originalInterpolatedScriptSourceRoots, basedir ) );
if ( basedir != null )
{
pathTranslator.alignToBaseDirectory( model, basedir );
}
project.preserveBuild( ModelUtils.cloneBuild( model.getBuild() ) );
project.preserveProperties();
project.preserveBasedir();
project.setBuild( model.getBuild() );
if ( project.getExecutionProject() != null )
{
calculateConcreteStateInternal( project.getExecutionProject(), config, processProjectReferences, processedProjects );
}
project.setConcrete( true );
}
if ( processProjectReferences )
{
calculateConcreteProjectReferences( project, config, processedProjects );
}
}