Package org.jboss.modules.maven

# Interface MavenResolver

public interface MavenResolver
A resolution strategy for Maven artifacts.

Author:
  David M. Lloyd

## Method Summary

Modifier and Type
Method
Description
`static MavenResolver`
`createDefaultResolver()`
Create a Maven artifact resolver using the default strategy.
`File`
`resolveArtifact(ArtifactCoordinates coordinates, String packaging)`
Tries to find a maven jar artifact from the system property `"maven.repo.local"` This property is a list of platform separated directory names.
`default File`
`resolveJarArtifact(ArtifactCoordinates coordinates)`
Try to resolve a Maven JAR artifact.

## Method Details

### resolveJarArtifact

default File resolveJarArtifact(ArtifactCoordinates coordinates) throws IOException
Try to resolve a Maven JAR artifact. Calling this method is identical to calling `resolveJarArtifact(qualifier, "jar")`.

Parameters:
  `coordinates` - the non-`null` Maven coordinates object
Returns:
  the absolute path to the artifact, or `null` if none exists
Throws:
  `IOException` - if acquiring the artifact path failed for some reason

### resolveArtifact

File resolveArtifact(ArtifactCoordinates coordinates, String packaging) throws IOException
Tries to find a maven jar artifact from the system property `"maven.repo.local"` This property is a list of platform separated directory names. If not specified, then it looks in `${user.home}/.m2/repository` by default.

If it can't find it in local paths, then will try to download from a remote repository from the system property `"remote.maven.repo"`. There is no default remote repository. It will download both the pom and jar and put it into the first directory listed in `"maven.repo.local"` (or the default directory). This directory will be created if it doesn't exist.

Finally, if you do not want a message to console, then set the system property `"maven.download.message"` to `"false"`.

Parameters:
  `coordinates` - the non-`null` Maven coordinates object
  `packaging` - a non-`null` string with the exact packaging type desired (e.g. `pom`, `jar`, etc.)
Returns:
  the absolute path to the artifact, or `null` if none exists
Throws:
  `IOException` - if acquiring the artifact path failed for some reason

### createDefaultResolver

static MavenResolver createDefaultResolver()
Create a Maven artifact resolver using the default strategy. The permissions of the class calling this method are captured and used for filesystem and network accesses. The default strategy uses the following system properties:

- `maven.repo.local` - a list of directory names using the platform separator which reflect local Maven repository roots
- `remote.maven.repo` - a comma-separated list of URIs which refer to remote Maven repositories, from which artifacts can be downloaded
- `maven.download.message` - a boolean system property which controls the logging of messages to the console

Returns:
  the maven resolver strategy (not `null`)