I want to override the ProjectDependenciesResolver
class. This usually calls the default implementation in the DefaultProjectDependenciesResolver
class.
Attempt 1
import org.apache.maven.project.*;
import org.codehaus.plexus.component.annotations.Component;
@Component(role = ProjectDependenciesResolver.class)
public class OurProjectDependenciesResolver implements ProjectDependenciesResolver {
@Override
public DependencyResolutionResult resolve(DependencyResolutionRequest dependencyResolutionRequest) throws DependencyResolutionException {
/* TODO: some modification to dependencyResolutionRequest */
return new DefaultProjectDependenciesResolver().resolve(dependencyResolutionRequest);
}
}
This fails inside DefaultProjectDependenciesResolver.resolve()
with:
Cannot invoke "org.codehaus.plexus.logging.Logger.isDebugEnabled() because "this.logger" is null
Attempt 2
@Component(role = ProjectDependenciesResolver.class)
public class OurProjectDependenciesResolver implements ProjectDependenciesResolver {
@Requirement
DefaultProjectDependenciesResolver defaultProjectDependenciesResolver;
@Override
public DependencyResolutionResult resolve(DependencyResolutionRequest dependencyResolutionRequest) throws DependencyResolutionException {
/* TODO: some modification to dependencyResolutionRequest */
return defaultProjectDependenciesResolver.resolve(dependencyResolutionRequest);
}
}
This attempt fails at the very beginning:
No implementation for org.apache.maven.project.DefaultProjectDependenciesResolver was bound
I want the correct way to do this.