Class ResolverUtil


  • @Named
    @Singleton
    public class ResolverUtil
    extends java.lang.Object
    Helper class for using Resolver API.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javax.inject.Provider<org.apache.maven.execution.MavenSession> mavenSessionProvider  
      private org.eclipse.aether.RepositorySystem repositorySystem  
    • Constructor Summary

      Constructors 
      Constructor Description
      ResolverUtil​(org.eclipse.aether.RepositorySystem repositorySystem, javax.inject.Provider<org.apache.maven.execution.MavenSession> mavenSessionProvider)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Collection<org.eclipse.aether.graph.Dependency> collectDependencies​(org.eclipse.aether.graph.Dependency root)
      Collects the transitive dependencies.
      org.eclipse.aether.artifact.Artifact createArtifactFromParams​(ParamArtifact paramArtifact)
      Create an artifact based on configuration from Mojo.
      private org.eclipse.aether.artifact.Artifact createArtifactFromString​(java.lang.String artifact)  
      private org.eclipse.aether.artifact.ArtifactType getArtifactType​(java.lang.String packaging)  
      java.util.Collection<org.apache.maven.model.Plugin> getProjectPlugins​(org.apache.maven.project.MavenProject project)
      Retrieve all plugins used in project either in build or reporting section.
      protected org.eclipse.aether.repository.RemoteRepository prepareRemoteRepository​(java.lang.String repository)  
      java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteRepositories​(java.util.List<java.lang.String> repositories)
      Prepare a remote repositories list for given descriptions.
      org.eclipse.aether.artifact.Artifact resolveArtifact​(org.eclipse.aether.artifact.Artifact artifact, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
      Resolve given artifact.
      java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependencies​(org.apache.maven.model.Plugin plugin, java.util.function.Predicate<org.apache.maven.model.Dependency> dependencyFilter)
      Resolve transitive dependencies for plugin.
      java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependencies​(org.eclipse.aether.artifact.Artifact artifact, java.util.List<org.eclipse.aether.graph.Dependency> dependencies, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
      Resolve transitive dependencies for artifact.
      java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependencies​(org.eclipse.aether.artifact.Artifact artifact, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
      Resolve transitive dependencies for artifact.
      java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependenciesForArtifact​(org.eclipse.aether.artifact.Artifact rootArtifact, java.util.List<org.eclipse.aether.graph.Dependency> dependencies, java.util.List<org.eclipse.aether.graph.Dependency> managedDependencies, java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories)
      Resolve transitive dependencies for artifact with managed dependencies.
      org.eclipse.aether.artifact.Artifact resolvePlugin​(org.apache.maven.model.Plugin plugin)
      Resolve given plugin artifact.
      private org.eclipse.aether.artifact.Artifact toArtifact​(org.apache.maven.model.Plugin plugin)  
      private org.apache.maven.model.Plugin toPlugin​(org.apache.maven.model.ReportPlugin reportPlugin, org.apache.maven.project.MavenProject project)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • repositorySystem

        private final org.eclipse.aether.RepositorySystem repositorySystem
      • mavenSessionProvider

        private final javax.inject.Provider<org.apache.maven.execution.MavenSession> mavenSessionProvider
    • Constructor Detail

      • ResolverUtil

        @Inject
        public ResolverUtil​(org.eclipse.aether.RepositorySystem repositorySystem,
                            javax.inject.Provider<org.apache.maven.execution.MavenSession> mavenSessionProvider)
    • Method Detail

      • collectDependencies

        public java.util.Collection<org.eclipse.aether.graph.Dependency> collectDependencies​(org.eclipse.aether.graph.Dependency root)
                                                                                      throws org.eclipse.aether.collection.DependencyCollectionException
        Collects the transitive dependencies.
        Parameters:
        root - a root dependency for collections
        Returns:
        a resolved dependencies collections
        Throws:
        org.eclipse.aether.collection.DependencyCollectionException
      • resolveArtifact

        public org.eclipse.aether.artifact.Artifact resolveArtifact​(org.eclipse.aether.artifact.Artifact artifact,
                                                                    java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
                                                             throws org.eclipse.aether.resolution.ArtifactResolutionException
        Resolve given artifact.
        Parameters:
        artifact - an artifact to resolve
        repositories - remote repositories list
        Returns:
        resolved artifact
        Throws:
        org.eclipse.aether.resolution.ArtifactResolutionException - if the artifact could not be resolved
      • resolvePlugin

        public org.eclipse.aether.artifact.Artifact resolvePlugin​(org.apache.maven.model.Plugin plugin)
                                                           throws org.eclipse.aether.resolution.ArtifactResolutionException
        Resolve given plugin artifact.
        Parameters:
        plugin - a plugin to resolve
        Returns:
        resolved artifact
        Throws:
        org.eclipse.aether.resolution.ArtifactResolutionException - if the artifact could not be resolved
      • resolveDependencies

        public java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependencies​(org.eclipse.aether.artifact.Artifact artifact,
                                                                                        java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
                                                                                 throws org.eclipse.aether.resolution.DependencyResolutionException
        Resolve transitive dependencies for artifact.
        Parameters:
        artifact - an artifact to resolve
        repositories - remote repositories list
        Returns:
        list of transitive dependencies for artifact
        Throws:
        org.eclipse.aether.resolution.DependencyResolutionException - if the dependency tree could not be built or any dependency artifact could not be resolved
      • resolveDependencies

        public java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependencies​(org.eclipse.aether.artifact.Artifact artifact,
                                                                                        java.util.List<org.eclipse.aether.graph.Dependency> dependencies,
                                                                                        java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
                                                                                 throws org.eclipse.aether.resolution.DependencyResolutionException
        Resolve transitive dependencies for artifact.
        Parameters:
        artifact - an artifact to resolve
        dependencies - a list of additional dependencies for artifact
        repositories - remote repositories list
        Returns:
        list of transitive dependencies for artifact
        Throws:
        org.eclipse.aether.resolution.DependencyResolutionException - if the dependency tree could not be built or any dependency artifact could not be resolved
      • resolveDependenciesForArtifact

        public java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependenciesForArtifact​(org.eclipse.aether.artifact.Artifact rootArtifact,
                                                                                                   java.util.List<org.eclipse.aether.graph.Dependency> dependencies,
                                                                                                   java.util.List<org.eclipse.aether.graph.Dependency> managedDependencies,
                                                                                                   java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories)
                                                                                            throws org.eclipse.aether.resolution.DependencyResolutionException
        Resolve transitive dependencies for artifact with managed dependencies.
        Parameters:
        rootArtifact - a root artifact to resolve
        dependencies - a list of dependencies for artifact
        managedDependencies - a list of managed dependencies for artifact
        remoteProjectRepositories - remote repositories list
        Returns:
        Resolved dependencies
        Throws:
        org.eclipse.aether.resolution.DependencyResolutionException - if the dependency tree could not be built or any dependency artifact could not be resolved
      • resolveDependencies

        public java.util.List<org.eclipse.aether.artifact.Artifact> resolveDependencies​(org.apache.maven.model.Plugin plugin,
                                                                                        java.util.function.Predicate<org.apache.maven.model.Dependency> dependencyFilter)
                                                                                 throws org.eclipse.aether.resolution.DependencyResolutionException
        Resolve transitive dependencies for plugin.
        Parameters:
        plugin - a plugin to resolve
        dependencyFilter - a filter to apply to plugin dependencies
        Returns:
        list of transitive dependencies for plugin
        Throws:
        org.eclipse.aether.resolution.DependencyResolutionException - if the dependency tree could not be built or any dependency artifact could not be resolved
      • toArtifact

        private org.eclipse.aether.artifact.Artifact toArtifact​(org.apache.maven.model.Plugin plugin)
      • remoteRepositories

        public java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteRepositories​(java.util.List<java.lang.String> repositories)
        Prepare a remote repositories list for given descriptions.
        Parameters:
        repositories - remote repositories descriptions
        Returns:
        a list of remote repositories
      • prepareRemoteRepository

        protected org.eclipse.aether.repository.RemoteRepository prepareRemoteRepository​(java.lang.String repository)
      • createArtifactFromParams

        public org.eclipse.aether.artifact.Artifact createArtifactFromParams​(ParamArtifact paramArtifact)
        Create an artifact based on configuration from Mojo.
        Parameters:
        paramArtifact - an artifact configuration
        Returns:
        new artifact
      • createArtifactFromString

        private org.eclipse.aether.artifact.Artifact createArtifactFromString​(java.lang.String artifact)
      • getArtifactType

        private org.eclipse.aether.artifact.ArtifactType getArtifactType​(java.lang.String packaging)
      • getProjectPlugins

        public java.util.Collection<org.apache.maven.model.Plugin> getProjectPlugins​(org.apache.maven.project.MavenProject project)
        Retrieve all plugins used in project either in build or reporting section.
        Parameters:
        project - a maven project
        Returns:
        a collection of plugins
      • toPlugin

        private org.apache.maven.model.Plugin toPlugin​(org.apache.maven.model.ReportPlugin reportPlugin,
                                                       org.apache.maven.project.MavenProject project)