use of org.eclipse.aether.resolution.ArtifactResolutionException in project fabric8 by jboss-fuse.
the class AetherBasedResolver method resolveFile.
/**
* Resolve maven artifact as file in repository.
*/
public File resolveFile(Artifact artifact, MavenRepositoryURL repositoryURL, Exception previousException) throws IOException {
List<LocalRepository> defaultRepos = selectDefaultRepositories();
List<RemoteRepository> remoteRepos = selectRepositories();
if (repositoryURL != null) {
addRepo(remoteRepos, repositoryURL);
}
if (previousException != null) {
// we'll try using previous repositories, without these that will fail again anyway
List<RemoteRepository> altered = new LinkedList<>();
RepositoryException repositoryException = findAetherException(previousException);
if (repositoryException instanceof ArtifactResolutionException) {
// check only this aggregate exception and assume it's related to current artifact
ArtifactResult result = ((ArtifactResolutionException) repositoryException).getResult();
if (result != null && result.getRequest() != null && result.getRequest().getArtifact().equals(artifact)) {
// - these exceptions contain repository that was checked
for (Exception exception : result.getExceptions()) {
RepositoryException singleException = findAetherException(exception);
if (singleException instanceof ArtifactTransferException) {
RemoteRepository repository = ((ArtifactTransferException) singleException).getRepository();
if (repository != null) {
RetryChance chance = isRetryableException(singleException);
if (chance == RetryChance.NEVER) {
LOG.debug("Removing " + repository + " from list of repositories, previous exception: " + singleException.getClass().getName() + ": " + singleException.getMessage());
} else {
altered.add(repository);
}
}
}
}
// swap list of repos now
remoteRepos = altered;
}
}
}
assignProxyAndMirrors(remoteRepos);
File resolved = resolve(defaultRepos, remoteRepos, artifact);
LOG.debug("Resolved ({}) as {}", artifact.toString(), resolved.getAbsolutePath());
return resolved;
}
use of org.eclipse.aether.resolution.ArtifactResolutionException in project spf4j by zolyfarkas.
the class ApiChangesMojo method execute.
@Override
public void execute() throws MojoExecutionException {
MavenProject mavenProject = getMavenProject();
try {
getLog().info("Executing JDiff javadoc doclet");
JDiffRunner runner = new JDiffRunner(getMojoExecution(), getToolchainManager(), getMavenSession(), getProjectRepos(), getRepoSystem(), getJavadocExecutable());
runner.runDiffBetweenReleases(mavenProject.getGroupId(), mavenProject.getArtifactId(), this.versionRange, destDir, maxNumberOfDiffs);
runner.writeChangesIndexHtml(destDir, "changes.html");
getLog().info("Generated " + destDir + File.separatorChar + "changes.html");
} catch (IOException | DependencyResolutionException | VersionRangeResolutionException | ArtifactResolutionException | JavadocExecutionException ex) {
throw new MojoExecutionException("Failed executing mojo " + this, ex);
}
}
use of org.eclipse.aether.resolution.ArtifactResolutionException in project liferay-ide by liferay.
the class AetherUtil method getLatestAvailableArtifact.
public static Artifact getLatestAvailableArtifact(String gavCoords) {
Artifact retval = null;
RepositorySystem system = newRepositorySystem();
RepositorySystemSession session = newRepositorySystemSession(system);
String latestVersion = getLatestVersion(gavCoords, system, session);
String[] gav = gavCoords.split(":");
Artifact defaultArtifact = new DefaultArtifact(gav[0] + ":" + gav[1] + ":" + latestVersion);
ArtifactRequest artifactRequest = new ArtifactRequest();
artifactRequest.setArtifact(defaultArtifact);
artifactRequest.addRepository(newCentralRepository());
try {
ArtifactResult artifactResult = system.resolveArtifact(session, artifactRequest);
retval = artifactResult.getArtifact();
} catch (ArtifactResolutionException e) {
LiferayMavenCore.logError("Unable to get latest Liferay archetype", e);
artifactRequest.setArtifact(new DefaultArtifact(gavCoords));
try {
retval = system.resolveArtifact(session, artifactRequest).getArtifact();
} catch (ArtifactResolutionException e1) {
LiferayMavenCore.logError("Unable to get default Liferay archetype", e1);
}
}
if (retval == null) {
retval = defaultArtifact;
}
return retval;
}
use of org.eclipse.aether.resolution.ArtifactResolutionException in project revapi by revapi.
the class Analyzer method resolveArtifacts.
@SuppressWarnings("unchecked")
void resolveArtifacts() {
if (resolvedOldApi == null) {
final ArtifactResolver resolver = new ArtifactResolver(repositorySystem, repositorySystemSession, project.getRemoteProjectRepositories());
Function<String, MavenArchive> toFileArchive = gav -> {
try {
Artifact a = resolveConstrained(project, gav, versionRegex, resolver);
return MavenArchive.of(a);
} catch (ArtifactResolutionException | VersionRangeResolutionException | IllegalArgumentException e) {
throw new MarkerException(e.getMessage(), e);
}
};
List<MavenArchive> oldArchives = new ArrayList<>(1);
try {
if (oldGavs != null) {
oldArchives = Stream.of(oldGavs).map(toFileArchive).collect(toList());
}
if (oldArtifacts != null) {
oldArchives.addAll(Stream.of(oldArtifacts).map(MavenArchive::of).collect(toList()));
}
} catch (MarkerException | IllegalArgumentException e) {
String message = "Failed to resolve old artifacts: " + e.getMessage() + ".";
if (failOnMissingArchives) {
throw new IllegalStateException(message, e);
} else {
log.warn(message + " The API analysis will proceed comparing the new archives against an empty" + " archive.");
}
}
List<MavenArchive> newArchives = new ArrayList<>(1);
try {
if (newGavs != null) {
newArchives = Stream.of(newGavs).map(toFileArchive).collect(toList());
}
if (newArtifacts != null) {
newArchives.addAll(Stream.of(newArtifacts).map(MavenArchive::of).collect(toList()));
}
} catch (MarkerException | IllegalArgumentException e) {
String message = "Failed to resolve new artifacts: " + e.getMessage() + ".";
if (failOnMissingArchives) {
throw new IllegalStateException(message, e);
} else {
log.warn(message + " The API analysis will not proceed.");
return;
}
}
// now we need to be a little bit clever. When using RELEASE or LATEST as the version of the old artifact
// it might happen that it gets resolved to the same version as the new artifacts - this notoriously happens
// when releasing using the release plugin - you first build your artifacts, put them into the local repo
// and then do the site updates for the released version. When you do the site, maven will find the released
// version in the repo and resolve RELEASE to it. You compare it against what you just built, i.e. the same
// code, et voila, the site report doesn't ever contain any found differences...
Set<MavenArchive> oldTransitiveDeps = new HashSet<>();
Set<MavenArchive> newTransitiveDeps = new HashSet<>();
if (resolveDependencies) {
String[] resolvedOld = oldArchives.stream().map(MavenArchive::getName).toArray(String[]::new);
String[] resolvedNew = newArchives.stream().map(MavenArchive::getName).toArray(String[]::new);
oldTransitiveDeps.addAll(collectDeps("old", resolver, resolvedOld));
newTransitiveDeps.addAll(collectDeps("new", resolver, resolvedNew));
}
resolvedOldApi = API.of(oldArchives).supportedBy(oldTransitiveDeps).build();
resolvedNewApi = API.of(newArchives).supportedBy(newTransitiveDeps).build();
}
}
use of org.eclipse.aether.resolution.ArtifactResolutionException in project kie-wb-common by kiegroup.
the class MavenArtifactResolverTest method resolveArtifactNotOffline.
@Test
public void resolveArtifactNotOffline() throws Exception {
final boolean[] executedOffline = { false };
RepositorySystemSession session = Aether.getAether().getSession();
assertThat(checksIfArtifactIsPresent(session)).isFalse();
File file = new File("target/test-classes/fake-uberfire-m2repo-editor-backend-100-SNAPSHOT.jar");
assertThat(file).exists();
Artifact artifact = getArtifact();
artifact = artifact.setFile(file);
ArtifactRequest artifactRequest = new ArtifactRequest();
artifactRequest.setArtifact(artifact);
ArtifactResult result;
try {
Aether.getAether().getSystem().resolveArtifact(session, artifactRequest);
} catch (ArtifactResolutionException ex) {
assertThat(ex).isNotNull();
}
deployTestJar(artifact, session);
MavenArtifactResolver resolver = new MavenArtifactResolver() {
public URI resolve(final String groupId, final String artifactId, final String version) throws Exception {
return internalResolver(false, groupId, artifactId, version);
}
URI resolveEmbedded(final String groupId, final String artifactId, final String version) throws IOException {
executedOffline[0] = false;
return super.resolveEmbedded(groupId, artifactId, version);
}
};
URI uri = resolver.resolve(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion());
assertThat(uri).isNotNull();
assertThat(uri.getPath()).endsWith(File.separator + "fake-uberfire-m2repo-editor-backend" + File.separator + "100-SNAPSHOT" + File.separator + "fake-uberfire-m2repo-editor-backend-100-SNAPSHOT.jar");
result = Aether.getAether().getSystem().resolveArtifact(session, artifactRequest);
assertThat(result.isMissing()).isFalse();
assertThat(result.isResolved()).isTrue();
assertThat(executedOffline[0]).isFalse();
}
Aggregations