Pankraz76 commented on code in PR #11615:
URL: https://github.com/apache/maven/pull/11615#discussion_r2671904605
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java:
##########
@@ -274,4 +275,59 @@ public DependencyResolverResult
resolve(DependencyResolverRequest request)
private static DependencyResolverException cannotReadModuleInfo(final Path
path, final IOException cause) {
return new DependencyResolverException("Cannot read module information
of " + path, cause);
}
+
+ private static boolean containsUnresolvedExpression(String value) {
+ return value != null && value.contains("${") && value.contains("}");
+ }
+
+ private static String enhanceCollectionError(DependencyCollectionException
e, CollectRequest request) {
+ if (e.getMessage() != null && e.getMessage().contains("Invalid Collect
Request")) {
+ StringBuilder enhanced = new StringBuilder();
+ enhanced.append("Failed to collect dependencies");
+
+ org.eclipse.aether.graph.Dependency root = request.getRoot();
+ if (root != null && root.getArtifact() != null) {
Review Comment:
```suggestion
return if (root != null && root.getArtifact() != null) ?
enhanceDependency() : enhanceDependencies(...);
```
could be extracted as dedicated branch/concern to provide cohesion over
coupling.
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java:
##########
@@ -274,4 +275,59 @@ public DependencyResolverResult
resolve(DependencyResolverRequest request)
private static DependencyResolverException cannotReadModuleInfo(final Path
path, final IOException cause) {
return new DependencyResolverException("Cannot read module information
of " + path, cause);
}
+
+ private static boolean containsUnresolvedExpression(String value) {
+ return value != null && value.contains("${") && value.contains("}");
+ }
+
+ private static String enhanceCollectionError(DependencyCollectionException
e, CollectRequest request) {
+ if (e.getMessage() != null && e.getMessage().contains("Invalid Collect
Request")) {
+ StringBuilder enhanced = new StringBuilder();
+ enhanced.append("Failed to collect dependencies");
+
+ org.eclipse.aether.graph.Dependency root = request.getRoot();
+ if (root != null && root.getArtifact() != null) {
+ org.eclipse.aether.artifact.Artifact artifact =
root.getArtifact();
+ String groupId = artifact.getGroupId();
+ String artifactId = artifact.getArtifactId();
+ String version = artifact.getVersion();
+
+ if (containsUnresolvedExpression(groupId) ||
containsUnresolvedExpression(artifactId)
+ || containsUnresolvedExpression(version)) {
+ enhanced.append(" due to unresolved expression(s) in
dependency: ")
+ .append(groupId)
+ .append(":")
+ .append(artifactId)
+ .append(":")
+ .append(version)
+ .append(".\n")
+ .append("Please check that all properties are
defined in your POM or settings.xml.");
+ return enhanced.toString();
+ }
+ }
+
+ for (org.eclipse.aether.graph.Dependency dep :
request.getDependencies()) {
Review Comment:
could be extracted as dedicated branch/concern to provide cohesion over
coupling.
```suggestion
return enhanceDependencies(...)
```
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java:
##########
@@ -174,7 +174,8 @@ public DependencyResolverResult collect(@Nonnull
DependencyResolverRequest reque
session.getNode(result.getRoot(),
request.getVerbose()),
0);
} catch (DependencyCollectionException e) {
- throw new DependencyResolverException("Unable to collect
dependencies", e);
+ String enhancedMessage = enhanceCollectionError(e,
collectRequest);
+ throw new DependencyResolverException(enhancedMessage, e);
Review Comment:
```suggestion
throw new
DependencyResolverException(enhanceCollectionError(e, collectRequest), e);
```
- https://error-prone.picnic.tech/bugpatterns/DirectReturn
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]