Class ProjectModelResolver

java.lang.Object
org.apache.maven.project.ProjectModelResolver
All Implemented Interfaces:
ModelResolver

public class ProjectModelResolver extends Object implements ModelResolver
A model resolver to assist building of projects. This resolver gives priority to those repositories that have been declared in the POM.
Author:
Benjamin Bentmann
  • Constructor Details

    • ProjectModelResolver

      public ProjectModelResolver(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.RequestTrace trace, org.eclipse.aether.RepositorySystem resolver, org.eclipse.aether.impl.RemoteRepositoryManager remoteRepositoryManager, List<org.eclipse.aether.repository.RemoteRepository> repositories, ProjectBuildingRequest.RepositoryMerging repositoryMerging, org.apache.maven.project.ReactorModelPool modelPool)
  • Method Details

    • addRepository

      public void addRepository(Repository repository) throws InvalidRepositoryException
      Description copied from interface: ModelResolver
      Adds a repository to use for subsequent resolution requests. The order in which repositories are added matters, repositories that were added first should also be searched first. When multiple repositories with the same identifier are added, only the first repository being added will be used.
      Specified by:
      addRepository in interface ModelResolver
      Parameters:
      repository - The repository to add to the internal search chain, must not be null.
      Throws:
      InvalidRepositoryException - If the repository could not be added (e.g. due to invalid URL or layout).
    • addRepository

      public void addRepository(Repository repository, boolean replace) throws InvalidRepositoryException
      Description copied from interface: ModelResolver
      Adds a repository to use for subsequent resolution requests. The order in which repositories are added matters, repositories that were added first should also be searched first. When multiple repositories with the same identifier are added, then the value of the replace argument is determines the behaviour. If replace is false than any existing repository with the same Id will remain in use. If replace is true the new repository replaces the original.
      Specified by:
      addRepository in interface ModelResolver
      Parameters:
      repository - The repository to add to the internal search chain, must not be null.
      Throws:
      InvalidRepositoryException - If the repository could not be added (e.g. due to invalid URL or layout).
    • newCopy

      public ModelResolver newCopy()
      Description copied from interface: ModelResolver
      Clones this resolver for usage in a forked resolution process. In general, implementors need not provide a deep clone. The only requirement is that invocations of ModelResolver.addRepository(Repository) on the clone do not affect the state of the original resolver and vice versa.
      Specified by:
      newCopy in interface ModelResolver
      Returns:
      The cloned resolver, never null.
    • resolveModel

      public ModelSource resolveModel(String groupId, String artifactId, String version) throws UnresolvableModelException
      Description copied from interface: ModelResolver
      Tries to resolve the POM for the specified coordinates.
      Specified by:
      resolveModel in interface ModelResolver
      Parameters:
      groupId - The group identifier of the POM, must not be null.
      artifactId - The artifact identifier of the POM, must not be null.
      version - The version of the POM, must not be null.
      Returns:
      The source of the requested POM, never null.
      Throws:
      UnresolvableModelException - If the POM could not be resolved from any configured repository.
    • resolveModel

      public ModelSource resolveModel(Parent parent) throws UnresolvableModelException
      Description copied from interface: ModelResolver
      Tries to resolve the POM for the specified parent coordinates possibly updating parent.

      Unlike the ModelResolver.resolveModel(java.lang.String, java.lang.String, java.lang.String) method, this method supports version ranges and updates the given parent instance to match the returned ModelSource. If parent declares a version range, the version corresponding to the returned ModelSource will be set on the given parent.

      Specified by:
      resolveModel in interface ModelResolver
      Parameters:
      parent - The parent coordinates to resolve, must not be null.
      Returns:
      The source of the requested POM, never null.
      Throws:
      UnresolvableModelException - If the POM could not be resolved from any configured repository.
      See Also:
    • resolveModel

      public ModelSource resolveModel(Dependency dependency) throws UnresolvableModelException
      Description copied from interface: ModelResolver
      Tries to resolve the POM for the specified dependency coordinates possibly updating dependency.

      Unlike the ModelResolver.resolveModel(java.lang.String, java.lang.String, java.lang.String) method, this method supports version ranges and updates the given dependency instance to match the returned ModelSource. If dependency declares a version range, the version corresponding to the returned ModelSource will be set on the given dependency.

      Specified by:
      resolveModel in interface ModelResolver
      Parameters:
      dependency - The dependency coordinates to resolve, must not be null.
      Returns:
      The source of the requested POM, never null.
      Throws:
      UnresolvableModelException - If the POM could not be resolved from any configured repository.
      See Also: