-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
52 lines (47 loc) · 2.29 KB
/
Main.java
File metadata and controls
52 lines (47 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package org.codejive.jcp;
import eu.maveniverse.maven.mima.context.Context;
import eu.maveniverse.maven.mima.context.ContextOverrides;
import eu.maveniverse.maven.mima.context.Runtime;
import eu.maveniverse.maven.mima.context.Runtimes;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.resolution.ArtifactResult;
import org.eclipse.aether.resolution.DependencyRequest;
import org.eclipse.aether.resolution.DependencyResolutionException;
import org.eclipse.aether.resolution.DependencyResult;
import org.eclipse.aether.util.artifact.JavaScopes;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String... args) {
if (args.length == 0) {
throw new IllegalArgumentException("grp:art[:ext[:cls]]:ver [grp:art[:ext[:cls]]:ver ...]");
}
List<Dependency> dependencies = Arrays.stream(args)
.map(DefaultArtifact::new)
.map(a -> new Dependency(a, JavaScopes.RUNTIME))
.collect(Collectors.toList());
ContextOverrides overrides = ContextOverrides.create().build();
Runtime runtime = Runtimes.INSTANCE.getRuntime();
try (Context context = runtime.create(overrides)) {
CollectRequest collectRequest = new CollectRequest()
.setDependencies(dependencies)
.setRepositories(context.remoteRepositories());
DependencyRequest dependencyRequest = new DependencyRequest()
.setCollectRequest(collectRequest);
DependencyResult dependencyResult = context
.repositorySystem()
.resolveDependencies(context.repositorySystemSession(), dependencyRequest);
List<ArtifactResult> artifacts = dependencyResult.getArtifactResults();
String classpath = artifacts.stream()
.map(ar -> ar.getArtifact().getFile().toPath().toString())
.collect(Collectors.joining(File.pathSeparator));
System.out.print(classpath);
} catch (DependencyResolutionException e) {
throw new RuntimeException(e);
}
}
}