mirror of https://github.com/apache/maven.git
o refactor usage of build methods
o do not do path resolution for repository POMs o source poms override repository poms in the cache git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163577 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c865afbae9
commit
de262b4236
|
@ -100,7 +100,7 @@ public Set retrieve( Artifact artifact, ArtifactRepository localRepository, List
|
|||
{
|
||||
if ( mavenProjectBuilder != null )
|
||||
{
|
||||
MavenProject p = mavenProjectBuilder.build( metadataArtifact.getFile(), localRepository );
|
||||
MavenProject p = mavenProjectBuilder.buildFromRepository( metadataArtifact, localRepository );
|
||||
dependencies = p.getDependencies();
|
||||
}
|
||||
else
|
||||
|
|
|
@ -94,13 +94,26 @@ public void initialize()
|
|||
// MavenProjectBuilder Implementation
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
public MavenProject build( File projectDescriptor, ArtifactRepository localRepository )
|
||||
public MavenProject buildWithDependencies( File project, ArtifactRepository localRepository )
|
||||
throws ProjectBuildingException
|
||||
{
|
||||
return build( projectDescriptor, localRepository, false );
|
||||
return build( project, localRepository, true, true );
|
||||
}
|
||||
|
||||
public MavenProject build( File projectDescriptor, ArtifactRepository localRepository, boolean resolveDependencies )
|
||||
public MavenProject build( File project, ArtifactRepository localRepository )
|
||||
throws ProjectBuildingException
|
||||
{
|
||||
return build( project, localRepository, false, true );
|
||||
}
|
||||
|
||||
public MavenProject buildFromRepository( Artifact artifact, ArtifactRepository localRepository )
|
||||
throws ProjectBuildingException
|
||||
{
|
||||
return build( artifact.getFile(), localRepository, false, false );
|
||||
}
|
||||
|
||||
private MavenProject build( File projectDescriptor, ArtifactRepository localRepository,
|
||||
boolean resolveDependencies, boolean sourceProject )
|
||||
throws ProjectBuildingException
|
||||
{
|
||||
try
|
||||
|
@ -124,7 +137,7 @@ public MavenProject build( File projectDescriptor, ArtifactRepository localRepos
|
|||
previous = current;
|
||||
}
|
||||
|
||||
project = processProjectLogic( project, localRepository, resolveDependencies );
|
||||
project = processProjectLogic( project, localRepository, resolveDependencies, sourceProject );
|
||||
|
||||
return project;
|
||||
}
|
||||
|
@ -135,7 +148,7 @@ public MavenProject build( File projectDescriptor, ArtifactRepository localRepos
|
|||
}
|
||||
|
||||
private MavenProject processProjectLogic( MavenProject project, ArtifactRepository localRepository,
|
||||
boolean resolveDependencies )
|
||||
boolean resolveDependencies, boolean sourceProject )
|
||||
throws ProjectBuildingException, ModelInterpolationException, ArtifactResolutionException
|
||||
{
|
||||
Model model = modelInterpolator.interpolate( project.getModel() );
|
||||
|
@ -146,15 +159,22 @@ private MavenProject processProjectLogic( MavenProject project, ArtifactReposito
|
|||
MavenProject parentProject = project.getParent();
|
||||
|
||||
File projectDescriptor = project.getFile();
|
||||
pathTranslator.alignToBaseDirectory( model, projectDescriptor );
|
||||
if ( sourceProject )
|
||||
{
|
||||
pathTranslator.alignToBaseDirectory( model, projectDescriptor );
|
||||
}
|
||||
|
||||
project = new MavenProject( model );
|
||||
project.setFile( projectDescriptor );
|
||||
project.setParent( parentProject );
|
||||
project.setArtifacts( artifactFactory.createArtifacts( project.getDependencies(), localRepository, null ) );
|
||||
|
||||
projectCache.put( createCacheKey( project.getGroupId(), project.getArtifactId(), project.getVersion() ),
|
||||
project );
|
||||
String key = createCacheKey( project.getGroupId(), project.getArtifactId(), project.getVersion() );
|
||||
MavenProject cachedProject = (MavenProject) projectCache.get( key );
|
||||
if ( cachedProject == null || sourceProject )
|
||||
{
|
||||
projectCache.put( key, project );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Typically when the project builder is being used from maven proper
|
||||
|
@ -351,7 +371,7 @@ public MavenProject buildSuperProject( ArtifactRepository localRepository )
|
|||
{
|
||||
project.setFile( new File( ".", "pom.xml" ) );
|
||||
|
||||
project = processProjectLogic( project, localRepository, false );
|
||||
project = processProjectLogic( project, localRepository, false, false );
|
||||
|
||||
return project;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -28,7 +29,10 @@ public interface MavenProjectBuilder
|
|||
MavenProject build( File project, ArtifactRepository localRepository )
|
||||
throws ProjectBuildingException;
|
||||
|
||||
MavenProject build( File project, ArtifactRepository localRepository, boolean transitive )
|
||||
MavenProject buildWithDependencies( File project, ArtifactRepository localRepository )
|
||||
throws ProjectBuildingException;
|
||||
|
||||
MavenProject buildFromRepository( Artifact artifact, ArtifactRepository localRepository )
|
||||
throws ProjectBuildingException;
|
||||
|
||||
MavenProject buildSuperProject( ArtifactRepository localRepository )
|
||||
|
|
|
@ -54,19 +54,19 @@ protected File getLocalRepositoryPath()
|
|||
{
|
||||
return getTestFile( "src/test/resources/local-repo" );
|
||||
}
|
||||
|
||||
|
||||
protected File getFileForClasspathResource( String resource )
|
||||
{
|
||||
ClassLoader cloader = Thread.currentThread().getContextClassLoader();
|
||||
|
||||
|
||||
URL resourceUrl = cloader.getResource( resource );
|
||||
|
||||
|
||||
File resourceFile = null;
|
||||
if(resourceUrl != null)
|
||||
if ( resourceUrl != null )
|
||||
{
|
||||
resourceFile = new File(resourceUrl.getPath());
|
||||
resourceFile = new File( resourceUrl.getPath() );
|
||||
}
|
||||
|
||||
|
||||
return resourceFile;
|
||||
}
|
||||
|
||||
|
@ -81,10 +81,10 @@ protected ArtifactRepository getLocalRepository()
|
|||
// Project building
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
protected MavenProject getProject( File pom, boolean transitive )
|
||||
protected MavenProject getProjectWithDependencies( File pom )
|
||||
throws Exception
|
||||
{
|
||||
return projectBuilder.build( pom, getLocalRepository(), transitive );
|
||||
return projectBuilder.buildWithDependencies( pom, getLocalRepository() );
|
||||
}
|
||||
|
||||
protected MavenProject getProject( File pom )
|
||||
|
|
|
@ -17,7 +17,7 @@ public void testProjectDirectoryBaseDirectoryAlignment()
|
|||
{
|
||||
File f = getTestFile( dir + "project-which-needs-directory-alignment.xml" );
|
||||
|
||||
MavenProject project = getProject( f, false );
|
||||
MavenProject project = getProject( f );
|
||||
|
||||
assertNotNull( "Test project can't be null!", project );
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ public void testProjectClasspath()
|
|||
declaredField.setAccessible( acc );
|
||||
// XXX: end hack
|
||||
|
||||
MavenProject project = getProject( f, true );
|
||||
MavenProject project = getProjectWithDependencies( f );
|
||||
|
||||
Artifact artifact;
|
||||
|
||||
|
|
Loading…
Reference in New Issue