[
https://issues.apache.org/jira/browse/MDEP-924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17840568#comment-17840568
]
ASF GitHub Bot commented on MDEP-924:
-------------------------------------
slawekjaranowski commented on code in PR #382:
URL:
https://github.com/apache/maven-dependency-plugin/pull/382#discussion_r1578483646
##########
src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java:
##########
@@ -68,4 +85,152 @@ public Collection<Dependency>
collectDependencies(Dependency root) throws Depend
result.getRoot().accept(nodeListGenerator);
return nodeListGenerator.getDependencies(true);
}
+
+ /**
+ * Resolve given artifact
+ *
+ * @param artifact an artifact to resolve
+ * @param repositories remote repositories list
+ * @return resolved artifact
+ * @throws ArtifactResolutionException If the artifact could not be
resolved.
+ */
+ public Artifact resolveArtifact(Artifact artifact, List<RemoteRepository>
repositories)
+ throws ArtifactResolutionException {
+ MavenSession session = mavenSessionProvider.get();
+ ArtifactRequest request = new ArtifactRequest(artifact, repositories,
null);
+ ArtifactResult result =
repositorySystem.resolveArtifact(session.getRepositorySession(), request);
+ return result.getArtifact();
+ }
+
+ /**
+ * Resolve transitive dependencies for artifact.
+ *
+ * @param artifact an artifact to resolve
+ * @param repositories remote repositories list
+ * @return list of transitive dependencies for artifact
+ * @throws DependencyResolutionException If the dependency tree could not
be built or any dependency artifact could
+ * not be resolved.
+ */
+ public List<Artifact> resolveDependencies(Artifact artifact,
List<RemoteRepository> repositories)
+ throws DependencyResolutionException {
+ MavenSession session = mavenSessionProvider.get();
+
+ CollectRequest collectRequest = new CollectRequest(new
Dependency(artifact, null), repositories);
+ DependencyRequest request = new DependencyRequest(collectRequest,
null);
+ DependencyResult result =
repositorySystem.resolveDependencies(session.getRepositorySession(), request);
+ return result.getArtifactResults().stream()
+ .map(ArtifactResult::getArtifact)
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * Prepare a remote repositories list for given descriptions.
+ *
+ * @param repositories remote repositories descriptions
+ * @return a list of remote repositories
+ */
+ public List<RemoteRepository> remoteRepositories(List<String>
repositories) {
+ MavenSession mavenSession = mavenSessionProvider.get();
+ List<RemoteRepository> projectRepositories =
+
mavenSession.getCurrentProject().getRemoteProjectRepositories();
+ if (repositories == null || repositories.isEmpty()) {
+ return projectRepositories;
+ }
+
+ List<RemoteRepository> repositoriesList =
+
repositories.stream().map(this::prepareRemoteRepository).collect(Collectors.toList());
+ repositoriesList =
+
repositorySystem.newResolutionRepositories(mavenSession.getRepositorySession(),
repositoriesList);
+
+ List<RemoteRepository> result = new ArrayList<>(projectRepositories);
+ result.addAll(repositoriesList);
+ return result;
+ }
+
+ // protected for testing purpose
+ protected RemoteRepository prepareRemoteRepository(String repository) {
Review Comment:
it is only used for resolving / collecting artifacts
> Get rid of maven-artifact-transfer from list-classes goal
> ---------------------------------------------------------
>
> Key: MDEP-924
> URL: https://issues.apache.org/jira/browse/MDEP-924
> Project: Maven Dependency Plugin
> Issue Type: Improvement
> Components: list-classes
> Reporter: Slawomir Jaranowski
> Assignee: Slawomir Jaranowski
> Priority: Major
> Fix For: 3.7.0
>
>
> We can use Resolver API
> Done in simple Mojo as preparing for other.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)