0

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.

user16217248
  • 3,119
  • 19
  • 19
  • 37
Yair
  • 1
  • 1

0 Answers0