mirror of
https://github.com/apache/maven.git
synced 2025-03-09 01:59:15 +00:00
[MNG-4331] Add new mojo annotation @requiresDependencyCollection to grab dependency tree without files
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@809431 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a0d6f81a20
commit
6d604c17c7
@ -54,7 +54,9 @@ public class ArtifactResolutionRequest
|
|||||||
|
|
||||||
private RepositoryCache cache;
|
private RepositoryCache cache;
|
||||||
|
|
||||||
private ArtifactFilter filter;
|
private ArtifactFilter collectionFilter;
|
||||||
|
|
||||||
|
private ArtifactFilter resolutionFilter;
|
||||||
|
|
||||||
// Needs to go away
|
// Needs to go away
|
||||||
private List<ResolutionListener> listeners = new ArrayList<ResolutionListener>();
|
private List<ResolutionListener> listeners = new ArrayList<ResolutionListener>();
|
||||||
@ -131,14 +133,39 @@ public ArtifactResolutionRequest setRemoteRepositories( List<ArtifactRepository>
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArtifactFilter getFilter()
|
/**
|
||||||
|
* Gets the artifact filter that controls traversal of the dependency graph.
|
||||||
|
*
|
||||||
|
* @return The filter used to determine which of the artifacts in the dependency graph should be traversed or
|
||||||
|
* {@code null} to collect all transitive dependencies.
|
||||||
|
*/
|
||||||
|
public ArtifactFilter getCollectionFilter()
|
||||||
{
|
{
|
||||||
return filter;
|
return collectionFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArtifactResolutionRequest setFilter( ArtifactFilter filter )
|
public ArtifactResolutionRequest setCollectionFilter( ArtifactFilter filter )
|
||||||
{
|
{
|
||||||
this.filter = filter;
|
this.collectionFilter = filter;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the artifact filter that controls downloading of artifact files. This filter operates on those artifacts
|
||||||
|
* that have been included by the {@link #getCollectionFilter()}.
|
||||||
|
*
|
||||||
|
* @return The filter used to determine which of the artifacts should have their files resolved or {@code null} to
|
||||||
|
* resolve the files for all collected artifacts.
|
||||||
|
*/
|
||||||
|
public ArtifactFilter getResolutionFilter()
|
||||||
|
{
|
||||||
|
return resolutionFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtifactResolutionRequest setResolutionFilter( ArtifactFilter filter )
|
||||||
|
{
|
||||||
|
this.resolutionFilter = filter;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -339,7 +339,7 @@ public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Ar
|
|||||||
.setManagedVersionMap( managedVersions )
|
.setManagedVersionMap( managedVersions )
|
||||||
.setLocalRepository( localRepository )
|
.setLocalRepository( localRepository )
|
||||||
.setRemoteRepositories( remoteRepositories )
|
.setRemoteRepositories( remoteRepositories )
|
||||||
.setFilter( filter )
|
.setCollectionFilter( filter )
|
||||||
.setListeners( listeners );
|
.setListeners( listeners );
|
||||||
|
|
||||||
return resolveWithExceptions( request );
|
return resolveWithExceptions( request );
|
||||||
@ -379,7 +379,8 @@ private ArtifactResolutionResult resolve( ArtifactResolutionRequest request, boo
|
|||||||
Set<Artifact> artifacts = request.getArtifactDependencies();
|
Set<Artifact> artifacts = request.getArtifactDependencies();
|
||||||
Map managedVersions = request.getManagedVersionMap();
|
Map managedVersions = request.getManagedVersionMap();
|
||||||
List<ResolutionListener> listeners = request.getListeners();
|
List<ResolutionListener> listeners = request.getListeners();
|
||||||
ArtifactFilter filter = request.getFilter();
|
ArtifactFilter collectionFilter = request.getCollectionFilter();
|
||||||
|
ArtifactFilter resolutionFilter = request.getResolutionFilter();
|
||||||
|
|
||||||
//TODO: hack because metadata isn't generated in m2e correctly and i want to run the maven i have in the workspace
|
//TODO: hack because metadata isn't generated in m2e correctly and i want to run the maven i have in the workspace
|
||||||
if ( source == null )
|
if ( source == null )
|
||||||
@ -489,7 +490,9 @@ private ArtifactResolutionResult resolve( ArtifactResolutionRequest request, boo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// After the collection we will have the artifact object in the result but they will not be resolved yet.
|
// After the collection we will have the artifact object in the result but they will not be resolved yet.
|
||||||
result = artifactCollector.collect( artifacts, rootArtifact, managedVersions, request, source, filter, listeners, null );
|
result =
|
||||||
|
artifactCollector.collect( artifacts, rootArtifact, managedVersions, request, source, collectionFilter,
|
||||||
|
listeners, null );
|
||||||
|
|
||||||
// We have metadata retrieval problems, or there are cycles that have been detected
|
// We have metadata retrieval problems, or there are cycles that have been detected
|
||||||
// so we give this back to the calling code and let them deal with this information
|
// so we give this back to the calling code and let them deal with this information
|
||||||
@ -506,7 +509,10 @@ private ArtifactResolutionResult resolve( ArtifactResolutionRequest request, boo
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
resolve( artifact, request, request.getTransferListener(), false );
|
if ( resolutionFilter == null || resolutionFilter.include( artifact ) )
|
||||||
|
{
|
||||||
|
resolve( artifact, request, request.getTransferListener(), false );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch ( ArtifactNotFoundException anfe )
|
catch ( ArtifactNotFoundException anfe )
|
||||||
{
|
{
|
||||||
|
@ -41,7 +41,7 @@ abstract class AbstractScopeArtifactFilter
|
|||||||
|
|
||||||
private boolean systemScope;
|
private boolean systemScope;
|
||||||
|
|
||||||
void addScope( String scope )
|
void addScopeInternal( String scope )
|
||||||
{
|
{
|
||||||
if ( Artifact.SCOPE_COMPILE.equals( scope ) )
|
if ( Artifact.SCOPE_COMPILE.equals( scope ) )
|
||||||
{
|
{
|
||||||
|
@ -48,10 +48,31 @@ public CumulativeScopeArtifactFilter( Collection<String> scopes )
|
|||||||
{
|
{
|
||||||
this.scopes = new HashSet<String>();
|
this.scopes = new HashSet<String>();
|
||||||
|
|
||||||
|
addScopes( scopes );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new filter that combines the specified filters.
|
||||||
|
*
|
||||||
|
* @param filters The filters to combine, may be {@code null}.
|
||||||
|
*/
|
||||||
|
public CumulativeScopeArtifactFilter( CumulativeScopeArtifactFilter... filters )
|
||||||
|
{
|
||||||
|
this.scopes = new HashSet<String>();
|
||||||
|
|
||||||
|
if ( filters != null )
|
||||||
|
{
|
||||||
|
for ( CumulativeScopeArtifactFilter filter : filters )
|
||||||
|
{
|
||||||
|
addScopes( filter.getScopes() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addScopes( Collection<String> scopes )
|
||||||
|
{
|
||||||
if ( scopes != null )
|
if ( scopes != null )
|
||||||
{
|
{
|
||||||
this.scopes.addAll( scopes );
|
|
||||||
|
|
||||||
for ( String scope : scopes )
|
for ( String scope : scopes )
|
||||||
{
|
{
|
||||||
addScope( scope );
|
addScope( scope );
|
||||||
@ -59,6 +80,13 @@ public CumulativeScopeArtifactFilter( Collection<String> scopes )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addScope( String scope )
|
||||||
|
{
|
||||||
|
this.scopes.add( scope );
|
||||||
|
|
||||||
|
addScopeInternal( scope );
|
||||||
|
}
|
||||||
|
|
||||||
public Set<String> getScopes()
|
public Set<String> getScopes()
|
||||||
{
|
{
|
||||||
return scopes;
|
return scopes;
|
||||||
|
@ -35,7 +35,7 @@ public ScopeArtifactFilter( String scope )
|
|||||||
{
|
{
|
||||||
this.scope = scope;
|
this.scope = scope;
|
||||||
|
|
||||||
addScope( scope );
|
addScopeInternal( scope );
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getScope()
|
public String getScope()
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||||
import org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
|
import org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
|
||||||
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
|
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
|
||||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
|
||||||
import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter;
|
import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter;
|
||||||
import org.apache.maven.execution.MavenSession;
|
import org.apache.maven.execution.MavenSession;
|
||||||
import org.apache.maven.project.MavenProject;
|
import org.apache.maven.project.MavenProject;
|
||||||
@ -54,15 +53,29 @@ public class DefaultProjectDependenciesResolver
|
|||||||
@Requirement
|
@Requirement
|
||||||
private ResolutionErrorHandler resolutionErrorHandler;
|
private ResolutionErrorHandler resolutionErrorHandler;
|
||||||
|
|
||||||
public Set<Artifact> resolve( MavenProject project, Collection<String> scopes, MavenSession session )
|
public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToResolve, MavenSession session )
|
||||||
throws ArtifactResolutionException, ArtifactNotFoundException
|
throws ArtifactResolutionException, ArtifactNotFoundException
|
||||||
{
|
{
|
||||||
return resolve( Collections.singleton( project ), scopes, session );
|
return resolve( Collections.singleton( project ), scopesToResolve, session );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Collection<String> scopes,
|
public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToCollect,
|
||||||
|
Collection<String> scopesToResolve, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, ArtifactNotFoundException
|
||||||
|
{
|
||||||
|
return resolve( Collections.singleton( project ), scopesToCollect, scopesToResolve, session );
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Collection<String> scopesToResolve,
|
||||||
MavenSession session )
|
MavenSession session )
|
||||||
throws ArtifactResolutionException, ArtifactNotFoundException
|
throws ArtifactResolutionException, ArtifactNotFoundException
|
||||||
|
{
|
||||||
|
return resolve( projects, null, scopesToResolve, session );
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Collection<String> scopesToCollect,
|
||||||
|
Collection<String> scopesToResolve, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, ArtifactNotFoundException
|
||||||
{
|
{
|
||||||
Set<Artifact> resolved = new LinkedHashSet<Artifact>();
|
Set<Artifact> resolved = new LinkedHashSet<Artifact>();
|
||||||
|
|
||||||
@ -102,14 +115,16 @@ public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Colle
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ArtifactFilter scopeFilter = new CumulativeScopeArtifactFilter( scopes );
|
CumulativeScopeArtifactFilter resolutionScopeFilter = new CumulativeScopeArtifactFilter( scopesToResolve );
|
||||||
|
|
||||||
ArtifactFilter filter = scopeFilter;
|
CumulativeScopeArtifactFilter collectionScopeFilter = new CumulativeScopeArtifactFilter( scopesToCollect );
|
||||||
|
collectionScopeFilter = new CumulativeScopeArtifactFilter( collectionScopeFilter, resolutionScopeFilter );
|
||||||
|
|
||||||
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
|
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
|
||||||
.setResolveRoot( false )
|
.setResolveRoot( false )
|
||||||
.setResolveTransitively( true )
|
.setResolveTransitively( true )
|
||||||
.setFilter( filter )
|
.setCollectionFilter( collectionScopeFilter )
|
||||||
|
.setResolutionFilter( resolutionScopeFilter )
|
||||||
.setLocalRepository( session.getLocalRepository() )
|
.setLocalRepository( session.getLocalRepository() )
|
||||||
.setOffline( session.isOffline() )
|
.setOffline( session.isOffline() )
|
||||||
.setCache( session.getRepositoryCache() );
|
.setCache( session.getRepositoryCache() );
|
||||||
|
@ -35,11 +35,24 @@ public interface ProjectDependenciesResolver
|
|||||||
* Resolves the transitive dependencies of the specified project.
|
* Resolves the transitive dependencies of the specified project.
|
||||||
*
|
*
|
||||||
* @param project The project whose dependencies should be resolved, must not be {@code null}.
|
* @param project The project whose dependencies should be resolved, must not be {@code null}.
|
||||||
* @param scopes The dependency scopes that should be resolved, may be {@code null}.
|
* @param scopesToResolve The dependency scopes that should be resolved, may be {@code null}.
|
||||||
* @param session The current build session, must not be {@code null}.
|
* @param session The current build session, must not be {@code null}.
|
||||||
* @return The transitive dependencies of the specified project that match the requested scopes, never {@code null}.
|
* @return The transitive dependencies of the specified project that match the requested scopes, never {@code null}.
|
||||||
*/
|
*/
|
||||||
public Set<Artifact> resolve( MavenProject project, Collection<String> scopes, MavenSession session )
|
public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToResolve, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, ArtifactNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves the transitive dependencies of the specified project.
|
||||||
|
*
|
||||||
|
* @param project The project whose dependencies should be resolved, must not be {@code null}.
|
||||||
|
* @param scopesToCollect The dependency scopes that should be collected, may be {@code null}.
|
||||||
|
* @param scopesToResolve The dependency scopes that should be collected and also resolved, may be {@code null}.
|
||||||
|
* @param session The current build session, must not be {@code null}.
|
||||||
|
* @return The transitive dependencies of the specified project that match the requested scopes, never {@code null}.
|
||||||
|
*/
|
||||||
|
public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToCollect,
|
||||||
|
Collection<String> scopesToResolve, MavenSession session )
|
||||||
throws ArtifactResolutionException, ArtifactNotFoundException;
|
throws ArtifactResolutionException, ArtifactNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -371,7 +371,9 @@ private void resolveProjectDependencies( MavenProject project, MavenExecutionPla
|
|||||||
{
|
{
|
||||||
Collection<String> scopesToResolve = executionPlan.getRequiredResolutionScopes();
|
Collection<String> scopesToResolve = executionPlan.getRequiredResolutionScopes();
|
||||||
|
|
||||||
artifacts = projectDependenciesResolver.resolve( project, scopesToResolve, session );
|
Collection<String> scopesToCollect = executionPlan.getRequiredCollectionScopes();
|
||||||
|
|
||||||
|
artifacts = projectDependenciesResolver.resolve( project, scopesToCollect, scopesToResolve, session );
|
||||||
}
|
}
|
||||||
catch ( MultipleArtifactsNotFoundException e )
|
catch ( MultipleArtifactsNotFoundException e )
|
||||||
{
|
{
|
||||||
@ -672,6 +674,8 @@ private MavenExecutionPlan calculateExecutionPlan( MavenSession session, MavenPr
|
|||||||
|
|
||||||
Set<String> requiredDependencyResolutionScopes = new TreeSet<String>();
|
Set<String> requiredDependencyResolutionScopes = new TreeSet<String>();
|
||||||
|
|
||||||
|
Set<String> requiredDependencyCollectionScopes = new TreeSet<String>();
|
||||||
|
|
||||||
for ( Object task : taskSegment.tasks )
|
for ( Object task : taskSegment.tasks )
|
||||||
{
|
{
|
||||||
if ( task instanceof GoalTask )
|
if ( task instanceof GoalTask )
|
||||||
@ -721,10 +725,12 @@ else if ( task instanceof LifecycleTask )
|
|||||||
|
|
||||||
calculateForkedExecutions( mojoExecution, session, project, new HashSet<MojoDescriptor>() );
|
calculateForkedExecutions( mojoExecution, session, project, new HashSet<MojoDescriptor>() );
|
||||||
|
|
||||||
collectDependencyResolutionScopes( requiredDependencyResolutionScopes, mojoExecution );
|
collectDependencyRequirements( requiredDependencyResolutionScopes, requiredDependencyCollectionScopes,
|
||||||
|
mojoExecution );
|
||||||
}
|
}
|
||||||
|
|
||||||
return new MavenExecutionPlan( mojoExecutions, requiredDependencyResolutionScopes );
|
return new MavenExecutionPlan( mojoExecutions, requiredDependencyResolutionScopes,
|
||||||
|
requiredDependencyCollectionScopes );
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<TaskSegment> calculateTaskSegments( MavenSession session, List<String> tasks )
|
private List<TaskSegment> calculateTaskSegments( MavenSession session, List<String> tasks )
|
||||||
@ -887,21 +893,32 @@ private RepositoryRequest getRepositoryRequest( MavenSession session, MavenProje
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void collectDependencyResolutionScopes( Collection<String> requiredDependencyResolutionScopes,
|
private void collectDependencyRequirements( Collection<String> requiredDependencyResolutionScopes,
|
||||||
|
Collection<String> requiredDependencyCollectionScopes,
|
||||||
MojoExecution mojoExecution )
|
MojoExecution mojoExecution )
|
||||||
{
|
{
|
||||||
String requiredDependencyResolutionScope = mojoExecution.getMojoDescriptor().isDependencyResolutionRequired();
|
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
|
||||||
|
|
||||||
|
String requiredDependencyResolutionScope = mojoDescriptor.getDependencyResolutionRequired();
|
||||||
|
|
||||||
if ( StringUtils.isNotEmpty( requiredDependencyResolutionScope ) )
|
if ( StringUtils.isNotEmpty( requiredDependencyResolutionScope ) )
|
||||||
{
|
{
|
||||||
requiredDependencyResolutionScopes.add( requiredDependencyResolutionScope );
|
requiredDependencyResolutionScopes.add( requiredDependencyResolutionScope );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String requiredDependencyCollectionScope = mojoDescriptor.getDependencyCollectionRequired();
|
||||||
|
|
||||||
|
if ( StringUtils.isNotEmpty( requiredDependencyCollectionScope ) )
|
||||||
|
{
|
||||||
|
requiredDependencyCollectionScopes.add( requiredDependencyCollectionScope );
|
||||||
|
}
|
||||||
|
|
||||||
for ( List<MojoExecution> forkedExecutions : mojoExecution.getForkedExecutions().values() )
|
for ( List<MojoExecution> forkedExecutions : mojoExecution.getForkedExecutions().values() )
|
||||||
{
|
{
|
||||||
for ( MojoExecution forkedExecution : forkedExecutions )
|
for ( MojoExecution forkedExecution : forkedExecutions )
|
||||||
{
|
{
|
||||||
collectDependencyResolutionScopes( requiredDependencyResolutionScopes, forkedExecution );
|
collectDependencyRequirements( requiredDependencyResolutionScopes,
|
||||||
|
requiredDependencyCollectionScopes, forkedExecution );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,10 +38,15 @@ public class MavenExecutionPlan
|
|||||||
/** For project dependency resolution, the scopes of resolution required if any. */
|
/** For project dependency resolution, the scopes of resolution required if any. */
|
||||||
private Set<String> requiredDependencyResolutionScopes;
|
private Set<String> requiredDependencyResolutionScopes;
|
||||||
|
|
||||||
public MavenExecutionPlan( List<MojoExecution> executions, Set<String> requiredDependencyResolutionScopes )
|
/** For project dependency collection, the scopes of collection required if any. */
|
||||||
|
private Set<String> requiredDependencyCollectionScopes;
|
||||||
|
|
||||||
|
public MavenExecutionPlan( List<MojoExecution> executions, Set<String> requiredDependencyResolutionScopes,
|
||||||
|
Set<String> requiredDependencyCollectionScopes )
|
||||||
{
|
{
|
||||||
this.executions = executions;
|
this.executions = executions;
|
||||||
this.requiredDependencyResolutionScopes = requiredDependencyResolutionScopes;
|
this.requiredDependencyResolutionScopes = requiredDependencyResolutionScopes;
|
||||||
|
this.requiredDependencyCollectionScopes = requiredDependencyCollectionScopes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MojoExecution> getExecutions()
|
public List<MojoExecution> getExecutions()
|
||||||
@ -52,5 +57,11 @@ public List<MojoExecution> getExecutions()
|
|||||||
public Set<String> getRequiredResolutionScopes()
|
public Set<String> getRequiredResolutionScopes()
|
||||||
{
|
{
|
||||||
return requiredDependencyResolutionScopes;
|
return requiredDependencyResolutionScopes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<String> getRequiredCollectionScopes()
|
||||||
|
{
|
||||||
|
return requiredDependencyCollectionScopes;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -397,7 +397,7 @@ protected List<Artifact> resolvePluginArtifacts( Plugin plugin, Artifact pluginA
|
|||||||
ArtifactResolutionRequest request = new ArtifactResolutionRequest( repositoryRequest );
|
ArtifactResolutionRequest request = new ArtifactResolutionRequest( repositoryRequest );
|
||||||
request.setArtifact( pluginArtifact );
|
request.setArtifact( pluginArtifact );
|
||||||
request.setArtifactDependencies( overrideArtifacts );
|
request.setArtifactDependencies( overrideArtifacts );
|
||||||
request.setFilter( filter );
|
request.setCollectionFilter( filter );
|
||||||
request.setResolveRoot( true );
|
request.setResolveRoot( true );
|
||||||
request.setResolveTransitively( true );
|
request.setResolveTransitively( true );
|
||||||
|
|
||||||
|
@ -1861,14 +1861,9 @@ private void deepCopy( MavenProject project )
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addArtifactPath( Artifact artifact, List<String> classpath )
|
private void addArtifactPath( Artifact artifact, List<String> classpath )
|
||||||
throws DependencyResolutionRequiredException
|
|
||||||
{
|
{
|
||||||
File file = artifact.getFile();
|
File file = artifact.getFile();
|
||||||
if ( file == null )
|
if ( file != null )
|
||||||
{
|
|
||||||
throw new DependencyResolutionRequiredException( artifact );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
classpath.add( file.getPath() );
|
classpath.add( file.getPath() );
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ public MavenExecutionPlan calculateExecutionPlan( MavenSession session, String..
|
|||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
|
||||||
MojoNotFoundException
|
MojoNotFoundException
|
||||||
{
|
{
|
||||||
return new MavenExecutionPlan( Collections.<MojoExecution> emptyList(), null );
|
return new MavenExecutionPlan( Collections.<MojoExecution> emptyList(), null, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute( MavenSession session )
|
public void execute( MavenSession session )
|
||||||
|
@ -93,6 +93,9 @@ public class MojoDescriptor
|
|||||||
/** Specify the required dependencies in a specified scope */
|
/** Specify the required dependencies in a specified scope */
|
||||||
private String dependencyResolutionRequired = null;
|
private String dependencyResolutionRequired = null;
|
||||||
|
|
||||||
|
/** The scope of (transitive) dependencies that should be collected but not resolved. */
|
||||||
|
private String dependencyCollectionRequired;
|
||||||
|
|
||||||
/** By default, the Mojo needs a Maven project to be executed */
|
/** By default, the Mojo needs a Maven project to be executed */
|
||||||
private boolean projectRequired = true;
|
private boolean projectRequired = true;
|
||||||
|
|
||||||
@ -235,15 +238,38 @@ public void setDependencyResolutionRequired( String requiresDependencyResolution
|
|||||||
this.dependencyResolutionRequired = requiresDependencyResolution;
|
this.dependencyResolutionRequired = requiresDependencyResolution;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDependencyResolutionRequired()
|
||||||
|
{
|
||||||
|
return dependencyResolutionRequired;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the required dependencies in a specified scope
|
* @return the required dependencies in a specified scope
|
||||||
* @TODO the name is not intelligible
|
* @TODO the name is not intelligible
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public String isDependencyResolutionRequired()
|
public String isDependencyResolutionRequired()
|
||||||
{
|
{
|
||||||
return dependencyResolutionRequired;
|
return dependencyResolutionRequired;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDependencyCollectionRequired( String requiresDependencyCollection )
|
||||||
|
{
|
||||||
|
this.dependencyCollectionRequired = requiresDependencyCollection;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the scope of (transitive) dependencies that should be collected. Dependency collection refers to the process
|
||||||
|
* of calculating the complete dependency tree in terms of artifact coordinates. In contrast to dependency
|
||||||
|
* resolution, this does not include the download of the files for the dependency artifacts.
|
||||||
|
*
|
||||||
|
* @return The scope of (transitive) dependencies that should be collected or {@code null} if none.
|
||||||
|
*/
|
||||||
|
public String getDependencyCollectionRequired()
|
||||||
|
{
|
||||||
|
return dependencyCollectionRequired;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
// Project requirement
|
// Project requirement
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
@ -195,11 +195,18 @@ public MojoDescriptor buildComponentDescriptor( PlexusConfiguration c, PluginDes
|
|||||||
|
|
||||||
mojo.setDescription( c.getChild( "description" ).getValue() );
|
mojo.setDescription( c.getChild( "description" ).getValue() );
|
||||||
|
|
||||||
String dependencyResolution = c.getChild( "requiresDependencyResolution" ).getValue();
|
PlexusConfiguration dependencyResolution = c.getChild( "requiresDependencyResolution", false );
|
||||||
|
|
||||||
if ( dependencyResolution != null )
|
if ( dependencyResolution != null )
|
||||||
{
|
{
|
||||||
mojo.setDependencyResolutionRequired( dependencyResolution );
|
mojo.setDependencyResolutionRequired( dependencyResolution.getValue() );
|
||||||
|
}
|
||||||
|
|
||||||
|
PlexusConfiguration dependencyCollection = c.getChild( "requiresDependencyCollection", false );
|
||||||
|
|
||||||
|
if ( dependencyCollection != null )
|
||||||
|
{
|
||||||
|
mojo.setDependencyCollectionRequired( dependencyCollection.getValue() );
|
||||||
}
|
}
|
||||||
|
|
||||||
String directInvocationOnly = c.getChild( "requiresDirectInvocation" ).getValue();
|
String directInvocationOnly = c.getChild( "requiresDirectInvocation" ).getValue();
|
||||||
|
@ -66,7 +66,8 @@ public void testBuildReader()
|
|||||||
|
|
||||||
assertEquals( "jar", md.getGoal() );
|
assertEquals( "jar", md.getGoal() );
|
||||||
assertEquals( "mojo-description", md.getDescription() );
|
assertEquals( "mojo-description", md.getDescription() );
|
||||||
assertEquals( "runtime", md.isDependencyResolutionRequired() );
|
assertEquals( "runtime", md.getDependencyResolutionRequired() );
|
||||||
|
assertEquals( "test", md.getDependencyCollectionRequired() );
|
||||||
assertEquals( false, md.isAggregator() );
|
assertEquals( false, md.isAggregator() );
|
||||||
assertEquals( false, md.isDirectInvocationOnly() );
|
assertEquals( false, md.isDirectInvocationOnly() );
|
||||||
assertEquals( true, md.isInheritedByDefault() );
|
assertEquals( true, md.isInheritedByDefault() );
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<goal>jar</goal>
|
<goal>jar</goal>
|
||||||
<description>mojo-description</description>
|
<description>mojo-description</description>
|
||||||
<requiresDependencyResolution>runtime</requiresDependencyResolution>
|
<requiresDependencyResolution>runtime</requiresDependencyResolution>
|
||||||
|
<requiresDependencyCollection>test</requiresDependencyCollection>
|
||||||
<requiresDirectInvocation>false</requiresDirectInvocation>
|
<requiresDirectInvocation>false</requiresDirectInvocation>
|
||||||
<requiresProject>true</requiresProject>
|
<requiresProject>true</requiresProject>
|
||||||
<requiresReports>false</requiresReports>
|
<requiresReports>false</requiresReports>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user