You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2024/06/05 20:57:02 UTC
(maven) branch MNG-7758-next-try created (now 26695ff491)
This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a change to branch MNG-7758-next-try
in repository https://gitbox.apache.org/repos/asf/maven.git
at 26695ff491 [MNG-7758] Report dependency problems for all repository
This branch includes the following new commits:
new 26695ff491 [MNG-7758] Report dependency problems for all repository
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(maven) 01/01: [MNG-7758] Report dependency problems for all repository
Posted by sj...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch MNG-7758-next-try
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 26695ff4912a4272e5439d48b152e5128fae0ef7
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Wed Jun 5 22:56:39 2024 +0200
[MNG-7758] Report dependency problems for all repository
---
.../DefaultProjectDependenciesResolver.java | 8 +++--
.../project/DependencyResolutionException.java | 34 ++++++++++++++++++++++
2 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
index 28d3672143..54c1762da9 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
@@ -160,7 +160,9 @@ public class DefaultProjectDependenciesResolver implements ProjectDependenciesRe
result.setCollectionErrors(e.getResult().getExceptions());
throw new DependencyResolutionException(
- result, "Could not resolve dependencies for project " + project.getId() + ": " + e.getMessage(), e);
+ result,
+ "Could not collect dependencies for project " + project.getId(),
+ logger.isDebugEnabled() ? e : null);
}
depRequest.setRoot(node);
@@ -190,7 +192,9 @@ public class DefaultProjectDependenciesResolver implements ProjectDependenciesRe
process(result, e.getResult().getArtifactResults());
throw new DependencyResolutionException(
- result, "Could not resolve dependencies for project " + project.getId() + ": " + e.getMessage(), e);
+ result,
+ "Could not resolve dependencies for project " + project.getId(),
+ logger.isDebugEnabled() ? e : null);
}
return result;
diff --git a/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionException.java b/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionException.java
index 794986b4b6..278e06ed19 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionException.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionException.java
@@ -18,18 +18,52 @@
*/
package org.apache.maven.project;
+import java.util.List;
+
+import org.eclipse.aether.graph.Dependency;
+
/**
*/
public class DependencyResolutionException extends Exception {
private final transient DependencyResolutionResult result;
+ private final transient String detailMessage;
public DependencyResolutionException(DependencyResolutionResult result, String message, Throwable cause) {
super(message, cause);
this.result = result;
+ this.detailMessage = prepareDetailMessage(message, result);
+ }
+
+ private static String prepareDetailMessage(String message, DependencyResolutionResult result) {
+ StringBuilder msg = new StringBuilder(message);
+ msg.append(System.lineSeparator());
+ for (Dependency dependency : result.getUnresolvedDependencies()) {
+ msg.append("dependency: ").append(dependency).append(System.lineSeparator());
+ List<Exception> exceptions = result.getResolutionErrors(dependency);
+ for (Exception e : exceptions) {
+ msg.append("\t").append(e.getMessage()).append(System.lineSeparator());
+ }
+ }
+
+ for (Exception exception : result.getCollectionErrors()) {
+ msg.append(exception.getMessage()).append(System.lineSeparator());
+ if (exception.getCause() != null) {
+ msg.append("\tCaused by: ")
+ .append(exception.getCause().getMessage())
+ .append(System.lineSeparator());
+ }
+ }
+
+ return msg.toString();
}
public DependencyResolutionResult getResult() {
return result;
}
+
+ @Override
+ public String getMessage() {
+ return detailMessage;
+ }
}