You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Slawomir Jaranowski (Jira)" <ji...@apache.org> on 2023/04/10 11:03:00 UTC
[jira] (MRESOLVER-335) Better resolver errors for Artifact Not Found
[ https://issues.apache.org/jira/browse/MRESOLVER-335 ]
Slawomir Jaranowski deleted comment on MRESOLVER-335:
-----------------------------------------------
was (Author: slawekjaranowski):
This is tricky ....
{code:java}
for (Throwable t : result.getExceptions()) {
if (t instanceof ArtifactNotFoundException) {
if (notFound == null || notFound instanceof ArtifactFilteredOutException) {
notFound = t;
}
if (offline == null && t.getCause() instanceof RepositoryOfflineException) {
offline = t;
}
} else {
return t;
}
}
{code}
If first exception on the list is not {{ArtifactNotFoundException}} then will be returned as a cause.
Each exception can be generated by configured repository in user project and order depends on project/settings
So when we have an exceptions list as
- {{TransferException}}
- {{ArtifactNotFoundException}},
- {{ArtifactNotFoundException}}.
{{TransferException}} will be returned.
Maybe we need check all items on list ... but question is which {{ArtifactNotFoundException}} should be returned as cause?
> Better resolver errors for Artifact Not Found
> ---------------------------------------------
>
> Key: MRESOLVER-335
> URL: https://issues.apache.org/jira/browse/MRESOLVER-335
> Project: Maven Resolver
> Issue Type: Improvement
> Components: Resolver
> Reporter: Slawomir Jaranowski
> Priority: Major
> Fix For: 1.10.0
>
>
> When we have many remote repositories only first {{ArtifactNotFoundException}} is returned, all checks for other repositories are hidden.
> When we have errors for many artifacts in one request - list of problematic artifacts is present in message and only first exception for one artifact.
> Next case is with remote repository filtering, checks for remote repository according to filtering also produce {{ArtifactNotFoundException}}, this is done at the beginning so exception is first on list.
> In logs and exception we have:
> {code}
> Downloading from my-mirror: https://artifactory.../artifactory/remote-repos/org/apache/commons/commons-lang3/4.4.4/commons-lang3-4.4.4.pom
> [WARNING] The POM for org.apache.commons:commons-lang3:jar:4.4.4 is missing, no dependency information available
> Downloading from my-mirror: https://artifactory.../artifactory/remote-repos/org/apache/commons/commons-lang3/4.4.4/commons-lang3-4.4.4.jar
> [ERROR] Failed to execute goal on project maven-3.9: Could not resolve dependencies for project org.test:maven-3.9:jar:1.0.0-SNAPSHOT: Prefix org NOT allowed from mayrepo (https://artifactory.../artifactory/myrepo/, default, releases+snapshots)
> {code}
> As we see artefact was not found in {{my-mirror}}, but in error report we have information about not allowed prefixes - it can be confusing
--
This message was sent by Atlassian Jira
(v8.20.10#820010)