archive.maven
Install/Resolve archives to/from Maven repositories
An extension for instrumental.archive, providing access to Maven repositories, with artifacts as Archives.
Provides:
- Configurable local and remote repositories
- Download from remote repositories
- Configure a (real) local repository as a remote
- Install to local repositories (for later resolution)
- Resolve dependency graphs (download with transitive dependencies)
- Build classpaths
Use to:
- Provide compilation dependencies for instrumental.compile
- Extract compilation sourcecode for instrumental.compile
- Maintain dependency graph information for dynamically created archives
- Meddle with your local Maven repository
- Build uber/shaded JARs programmatically
Examples
Download a dependency graph and make available as a Map of maven artifact GAV coordinate to instrumental Archive.
Map<MavenArtifact, Archive> dependencies = maven() .usingCentral() .usingLocal(Paths.get(".", "target", "repo-resolve-depgraph")) .dependencies("junit:junit:4.12"); MavenArtifact junit = new MavenArtifact("junit", "junit", "4.12", "jar", ""); MavenArtifact hamcrest = new MavenArtifact("org.hamcrest", "hamcrest-core", "1.3", "jar", ""); assertThat(dependencies, allOf( aMapWithSize(2), hasKey(junit), hasKey(hamcrest)));
Download a dependency graph and make available as a classpath.
List<String> classpath = maven() .usingCentral() .usingLocal(Paths.get(".", "target", "repo-resolve-classpath")) .classpath("junit:junit:4.12") .stream() .map(Object::toString) .collect(toList()); assertThat(classpath, containsInAnyOrder( endsWith("junit-4.12.jar"), endsWith("hamcrest-core-1.3.jar")));
(source).