Artifact (Artifact artifact, List<ArtifactRepository> remoteRepositories) { try { MavenExecutionRequest request = createRequest(null, null, null); for (ArtifactRepository artifactRepository : remoteRepositories) { request.addRemoteRepository(artifactRepository); } DefaultMaven maven = (DefaultMaven)getComponent(Maven.class); RepositorySystemSession repositorySystemSession = maven.newRepositorySession(request); initLogging(myConsoleWrapper); // do not use request.getRemoteRepositories() here, // it can be broken after DefaultMaven#newRepositorySession => MavenRepositorySystem.injectMirror invocation RemoteRepositoryManager remoteRepositoryManager = getComponent(RemoteRepositoryManager.class); org.eclipse.aether.RepositorySystem repositorySystem = getComponent(org.eclipse.aether.RepositorySystem.class); List<RemoteRepository> repositories = RepositoryUtils.toRepos(remoteRepositories); repositories = remoteRepositoryManager.aggregateRepositories(repositorySystemSession, new ArrayList<>(), repositories, false); ArtifactResult artifactResult = repositorySystem.resolveArtifact( repositorySystemSession, new ArtifactRequest(RepositoryUtils.toArtifact(artifact), repositories, null)); return RepositoryUtils.toArtifact(artifactResult.getArtifact()); } catch (Exception e) { MavenServerGlobals.getLogger().info(e); } return artifact; }