You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/01/24 15:24:35 UTC
svn commit: r902573 - in /maven/maven-3/trunk:
maven-compat/src/main/java/org/apache/maven/artifact/resolver/
maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/
maven-core/src/main/java/org/apache/maven/project/artifact/
Author: bentmann
Date: Sun Jan 24 14:24:34 2010
New Revision: 902573
URL: http://svn.apache.org/viewvc?rev=902573&view=rev
Log:
[MNG-4522] Maven3 doesn't fail build when a pom from transitive dependency can't be found
Modified:
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=902573&r1=902572&r2=902573&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Sun Jan 24 14:24:34 2010
@@ -569,7 +569,10 @@
}
catch ( ArtifactMetadataRetrievalException e )
{
- // need to add metadata resolution exception
+ ArtifactResolutionException are =
+ new ArtifactResolutionException( "Unable to get dependency information for " + rootArtifact.getId()
+ + ": " + e.getMessage(), rootArtifact, metadataRequest.getRemoteRepositories(), e );
+ result.addMetadataResolutionException( are );
return result;
}
}
Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java?rev=902573&r1=902572&r2=902573&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java Sun Jan 24 14:24:34 2010
@@ -583,8 +583,8 @@
{
artifact.setDependencyTrail( node.getDependencyTrail() );
- throw new ArtifactResolutionException( "Unable to get dependency information: "
- + e.getMessage(), artifact, childRemoteRepositories, e );
+ throw new ArtifactResolutionException( "Unable to get dependency information for "
+ + artifact.getId() + ": " + e.getMessage(), artifact, childRemoteRepositories, e );
}
ArtifactResolutionRequest subRequest = new ArtifactResolutionRequest( metadataRequest );
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=902573&r1=902572&r2=902573&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Sun Jan 24 14:24:34 2010
@@ -54,7 +54,10 @@
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.Exclusion;
import org.apache.maven.model.Relocation;
+import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblem;
+import org.apache.maven.model.resolution.UnresolvableModelException;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.MavenProject;
@@ -573,17 +576,26 @@
}
catch ( ProjectBuildingException e )
{
+ ModelProblem missingParentPom = hasMissingParentPom( e );
+ if ( missingParentPom != null )
+ {
+ throw new ArtifactMetadataRetrievalException( "Failed to process POM for "
+ + relocatedArtifact.getId() + ": " + missingParentPom.getMessage(),
+ missingParentPom.getException(),
+ relocatedArtifact );
+ }
+
String message;
// missing/incompatible POM (e.g. a Maven 1 POM)
- if ( e.getCause() instanceof ArtifactResolutionException )
+ if ( isMissingPom( e ) )
{
- message = "Missing artifact metadata for " + relocatedArtifact.getId();
+ message = "Missing POM for " + relocatedArtifact.getId();
}
else
{
message =
- "Invalid artifact metadata for " + relocatedArtifact.getId()
+ "Invalid POM for " + relocatedArtifact.getId()
+ ", transitive dependencies (if any) will not be available"
+ ", enable debug logging for more details";
}
@@ -693,6 +705,28 @@
return rel;
}
+ private boolean isMissingPom( ProjectBuildingException e )
+ {
+ return e.getCause() instanceof ArtifactResolutionException;
+ }
+
+ private ModelProblem hasMissingParentPom( ProjectBuildingException e )
+ {
+ if ( e.getCause() instanceof ModelBuildingException )
+ {
+ ModelBuildingException mbe = (ModelBuildingException) e.getCause();
+ for ( ModelProblem problem : mbe.getProblems() )
+ {
+ if ( problem.getException() instanceof UnresolvableModelException )
+ {
+ return problem;
+ }
+ }
+
+ }
+ return null;
+ }
+
private Properties getSystemProperties()
{
Properties props = new Properties();